2015-09-28 3 views
2

Я создаю размещенную систему, в которой несколько клиентов могут отправлять сообщения. Я получаю сообщения thoses в очереди JMS.Как вы можете слушать несколько очередей в WSO2 ESB

Теперь вся обработка выполняется аналогичным образом, и я хочу, чтобы мой процесс опросил все входящие очереди сообщений и обработал их. Есть ли способ в WSO2 ESB подписаться на несколько очередей?

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

Любые идеи по этому вопросу?

+0

Возможно ли внесение изменений на сервере activemq? Возможно, вы можете создать переадресацию в одиночную очередь в [activemq] (https://activemq.apache.org/artemis/docs/1.0.0/diverts.html). – Rohit

ответ

0

Вы можете определить последовательность со всей необходимой логикой в ​​ней, а затем вызвать ее из нескольких прокси-сервисов (каждый из которых прослушивает определенную очередь). В противном случае вы можете попробовать что-то похожее на this sample.

+0

Ваше предложение такое же, как описанное мной обходное решение ... Но я бы не хотел добавлять дополнительные услуги для каждого нового клиента. –

1

Если возможны изменения на сервере activeMQ, т.е. если OP может влиять на конфигурацию на сервер, что-то вроде переадресации ActiveMQ может сделать трюк.

<divert name="prices-divert"> 
    <address>jms.queue.ABC</address> 
    <forwarding-address>jms.queue.theone</forwarding-address> 
    <exclusive>true</exclusive> 
</divert> 

<divert name="prices-divert"> 
    <address>jms.queue.xyz</address> 
    <forwarding-address>jms.queue.theone</forwarding-address> 
    <exclusive>true</exclusive> 
</divert> 

В принципе, несколько переходов, которые объединяют сообщения из нескольких очередей в одну очередь. Этот метод имеет преимущество перед чтением и записью в одиночную очередь - как упоминалось в OP, и в моем масштабе будет хорошо, так как это встроенная функция.

+0

Интересная идея, я буду исследовать дальше. –