В ActiveMQ зависит ли MessageListener от файлов журнала данных хранилища сообщений - PullRequest
0 голосов
/ 27 февраля 2012

Я использую ActiveMQ в качестве сервера реализации JMS в своем приложении.Сценарий, как, есть тема, по которой у меня много постоянных подписчиков, которые используют опубликованное сообщение и прослушиватель сообщений, которые сохраняют данные из объекта сообщения на центральный сервер БД.Существует ветка производителя, которая продолжает публиковать постоянные сообщения по той же теме.Я использую KahaDB для постоянного хранилища сообщений.Как только сообщение публикуется, kahaDB создает файл журнала данных в хранилище сообщений для сохранения сообщения до тех пор, пока все подписчики на длительный срок не будут его использовать.Я хочу знать, если в какой-то момент я выключу сервер JMS и удаляю все файлы журнала данных, как это повлияет.Будет ли это так, что немногие постоянные подписчики не получат сообщение, которое было в файлах журнала данных для их использования, или существует вероятность того, что немногие сообщения не были сохранены в центральной базе данных, что делается слушателем сообщений по этой теме?,Любая подсказка или помощь очень ценится ...... Заранее спасибо.

1 Ответ

2 голосов
/ 27 февраля 2012

Если вы остановите и запустите своего брокера, независимо от того, удаляете ли вы файлы данных или нет, потребитель тем, которые еще не получили опубликованное сообщение, больше не будет его получать. Причиной этого является то, что сообщения, отправленные в тему, не будут записаны в постоянное хранилище сообщений.

Прочность и настойчивость не одно и то же. Долгосрочная подписка говорит брокеру сохранить состояние подписки в случае отключения подписчика - любые сообщения, отправленные в то время, когда отключен потребитель, будут сохраняться. С другой стороны, недлительная подписка конечна; если абонент отключается, он пропускает любые сообщения, отправленные в промежутке. Все сообщения хранятся в памяти и не сохранятся после перезапуска брокера.

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

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

Никакие сообщения, постоянные или непостоянные, не сохранятся, если выключить посредника и удалить каталог данных.

...