Прослушивание Apache ActiveMQ с использованием Apache Camel - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь провести очистку событий с помощью Apache Camel.Для шины обмена сообщениями я использую ActiveMQ.

Варианты использования

Я хочу проверять каждое сообщение, которое отправляется в ActiveMQ с использованием MongoDB в качестве постоянного хранилища.Я пробовал с зеркальными очередями в ActiveMQ.Это помещает сообщение в тему с тем же именем, что и в очереди.Но я должен реализовать подход, основанный на рабочих (балансировка нагрузки).Это невозможно с темой (дублирование сообщений не допускается).Поэтому я планировал использовать ActiveMQ с Camel, используя шаблон прослушивания.

Требуемый вывод:

Можно ли извлечь сообщение из пункта назначения прослушивания и вставить его в MongoDB, или есть способ, который может использовать Camelнапрямую вставить его в MongoDB?

1 Ответ

0 голосов
/ 03 июня 2019

Одним из возможных способов решения этой проблемы на стороне брокера является Composite Destination . Вы можете указать посреднику пересылать сообщения, отправленные в очередь, в другую очередь. При этом необходимо соблюдать осторожность, поскольку по умолчанию это происходит только при наличии очереди (статическая конфигурация адресатов может обойти это). Существует возможность всегда пересылать, и у вас также есть возможность применения селекторов, чтобы уменьшить объем отправляемых сообщений. Имейте в виду, что если у вас нет чего-то периодически очищающего очередь аудита, вам в конечном итоге не хватит места.

Вы можете настроить переадресацию следующим образом:

<compositeQueue name="myQueue" forwardOnly="false">   
  <forwardTo>
    <queue physicalName="myAuditQueue" />
  </forwardTo>
</compositeQueue>
...