Я использую несколько <si:service-activator>
и <jms:message-driven-channel-adapter>
, чтобы подписаться на несколько очередей и тем. Сообщения от каждого получателя принимаются в отдельном потоке, что означает, что мой код приема заполнен замками для защиты изменчивого внутреннего состояния.Spring-integration/ActiveMQ подписаться на несколько адресов в одном потоке
Я хочу, чтобы мой код получения был заблокирован. Можно ли настроить функцию spring-integration/activemq для приема из нескольких пунктов назначения в одном потоке?
Если это не возможно, я могу думать о двух альтернатив:
Начните свой собственный поток обработки, которая считывает из очереди блокировки, положить все полученные сообщения в этой очереди.
Отправляйте все полученные сообщения в один пункт назначения и используйте их.
У кого-нибудь есть идеи?
Да, это действительно работает. Примечание: очереди, подписанные с помощью подстановочных знаков (даже 2 разделенные запятой), не отображаются на веб-консоли до тех пор, пока не будет получено первое сообщение. Следующая проблема заключается в том, как смешивать очереди и темы с подстановочными знаками? – zool
Используйте VirtualTopics, чтобы использовать очереди для подписки на темы. В противном случае вы не можете смешивать. http://activemq.apache.org/virtual-destinations.html –