ActiveMQ - удалите VirtualTopic, когда Потребители = обнулят

Я пытаюсь реализовать новое приложение с помощью JMS под activeMQ 5.8.0. Существует несколько приложений, настроенных как Производители (т.е. вывести сообщения в MQ), две темы, и затем Потребители настроены для рассмотрения их VirtualTopic, который создается динамично на сервере Tomcat, запускаются.

Поток в качестве примера был бы:

Producer1 (Tomcat) --JMS--> ActiveMQ.VirtualTopic

Consumer.VirtualTopic1 --JMS--> Consumer1 (Tomcat)
Consumer.VirtualTopic2 --JMS--> Consumer2 (Tomcat)

Мы хотели, чтобы гибкость смогла запустить любое число потребителей и иметь ActiveMQ, динамично отправляют им. Это работает. Однако, когда Потребительский сервер закрывается (любой в результате его не необходимый больше, катастрофический отказ сервера, сетевое отключение электричества и т.д.), я хочу, чтобы AMQ прекратил помещать сообщения на свой VirtualTopic, поскольку управление потоком вталкивает и больше не использует сообщения от Производителя.

Мне настроили мой activemq.xml с:

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulePeriodForDestinationPurge="10000">

<policyEntry queue=">"  gcInactiveDestinations="true"  inactiveTimoutBeforeGC="30000" />

Я поэтому ожидал бы, что сервер будет отмечен как неактивный в течение 40 секунд после останавливаемого узла Tomcat (и число потребителей, отмечаемое как нуль), но этого не происходит. Я пропустил что-то?

Спасибо!

1
задан 24 July 2015 в 18:08
1 ответ

Я сам нашел ответ, немного более знакомый с ActiveMQ. Очередь удаляется автоматически, но только если нет ожидающих сообщений. Это решение было реализовано для работы с постоянным потоком сообщений (где-то между 20-5000 в секунду), поэтому никогда не существует окна для удаления очереди.

0
ответ дан 4 December 2019 в 07:22

Теги

Похожие вопросы