Мне нужна помощь с Embedded ActiveMq и Spring Framework.
Проблема: -
Я использую Embedded ActiveMQ с поддержкой JMS Spring Framework.
В рамках разработки у меня есть компонент, который публикует сообщения в виртуальной теме. И у меня есть другой компонент, который подписывается на сообщения из темы.
Теперь проблема в том, что приложение, которое подписывается на сообщения, работает в кластерной среде, то есть один главный экземпляр и один подчиненный экземпляр. События, которые я опубликовал, собираются либо в главный, либо в подчиненный экземпляры. Но я хочу, чтобы на сообщения подписывался только мастер-экземпляр. Можно ли как-то заблокировать ведомый экземпляр, чтобы он не подписывался на события?
У нас есть системное свойство, установленное для различения главного и подчиненного экземпляров. Я попытался добавить условие, переопределив createConnection
метод класса ActiveMqConnectionFactory
.
if(master) {
ActiveMqConnectionFactory.createConnection}
else
return null.
в этом случае DefaultMessageListener
среды Spring, которую мы настроили для прослушивания событий, всегда пытающихся обновить соединение, так как я возвращаю нулевое значение для ведомого, не удается создать соединение. поток собирается в бесконечный цикл с интервалом 5000 мс ..
Можно ли как-то сказать MessageListener, чтобы он не обновлял соединение ..
Пожалуйста, помогите мне решить эту проблему ..