ActiveMQ Артемида - PullRequest
       14

ActiveMQ Артемида

0 голосов
/ 04 декабря 2018

Я пытаюсь реализовать ActiveMQ / Artemis.Первый вопрос - является ли проект Artemis частью ActiveMQ?Я пытаюсь делать периодические задачи задержка-и-расписание-доставка сообщений ActiveMQ , но единственное, что работает, это задержка запланированные-сообщения Артемида - есть примечание о ядреAPI Запланированные сообщения также можно отправлять с помощью основного API, задав то же свойство для основного сообщения перед отправкой. - так что это, вероятно, не означает, что я могу установить свойства ActiveMQ.

Какова моя цель: мне нужна любая очередь сообщений со следующими функциями:

  1. Повторение задач (ActiveMQ)
  2. Обнаружение дубликатов задач (Артемида)
  3. Постоянство данных
  4. Модификация сообщения - удалить из очереди или изменить задержку повторения
  5. Интеграция пружин

Спасибо за любые предложения.

1 Ответ

0 голосов
/ 04 декабря 2018

Apache ActiveMQ Artemis - это брокер сообщений, который является частью проекта ActiveMQ.Однако он не похож на «классическую» кодовую базу брокера ActiveMQ.Он основан на более новом, принципиально неблокирующем дизайне и поддерживает все протоколы и практически те же функции, что и ActiveMQ 5.x.В настоящее время целью сообщества ActiveMQ является то, что Артемида станет версией ActiveMQ 6.x.

  1. Повторяющиеся задачи (ActiveMQ)

Вы может использовать запланированную доставку, но это относится только к одному сообщению.Как только это сообщение доставлено и потреблено, оно исчезло, что означает, что вам нужно отправить другое запланированное сообщение.Не происходит автоматической повторной доставки одного и того же сообщения.

Что-то вроде кварцевого планировщика может быть хорошим решением здесь, потому что вы можете планировать все задачи с ним, а запланированная задача можетотправьте сообщение в очередь, которая отслеживается вашими распределенными работниками.Таким образом, вы можете отделить планирование от распределения работы.

Обнаружение дублирующихся задач (Artemis)

Artemis поддерживает нечто, называемое «очередью последнего значения», где вы можете установить специальное свойство сообщения для определенного значения (например, для задачи).ID) и всякий раз, когда вы отправляете сообщение в очередь с тем же значением, оно заменяет существующее сообщение тем, которое вы отправили.Другими словами, он всегда имеет отправленное вами значение last .Подробнее об этом можно прочитать в документации Artemis об очередях с последними значениями .

. Существует также классическое обнаружение дубликатов, в котором вы можете установить дубликат идентификатора в сообщении, и если брокер увидит повторныйдубликат идентификатора будет отклонять сообщение с повторяющимся идентификатором.Подробнее об этом можно прочитать в документации Artemis по обнаружению дубликатов .

Постоянство данных

По умолчанию любое сообщение, помеченное как durable (или persistent в терминах JMS), которое отправляется в долговременную очередь (очереди по умолчанию долговечны) будетбыть сохраненным на диск.

Изменение сообщения - удалить из очереди или изменить задержку повторения

Сообщения в очереди являются неизменяемыми, поэтому вы не можете редактировать их технически, но вы можете использовать семантику последнего-значение очереди для получения аналогичного поведения (например, отправка измененного сообщения с тем же свойством last-value, и оно заменит существующее сообщение).

Интеграция Spring

ActiveMQ Artemis - это реализация JMS, поэтому все классы интеграции JMS, доступные в Spring, будут отлично работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...