У меня настроена сеть брокеров точно в соответствии с этой записью Брюса Снайдера:
Брокер 1:
<networkConnector name="amq1-nc"
uri="static:(tcp://localhost:61617)"
userName="system"
password="manager"
/>
Брокер 2:
<networkConnector name="amq2-nc"
uri="static:(tcp://localhost:61616)"
userName="system"
password="manager"
/>
У меня есть advisorySupport = "false" в теге брокера как XML-конфигурации брокера, так и запущены оба брокера.
Затем я запустил потребителя с помощью команды:
ant consumer -Durl=tcp://0.0.0.0:61616
и наконец запустил продюсера с помощью этой команды:
ant producer -Durl=tcp://0.0.0.0:61617
Все произведенные сообщения затем переходят в состояние ожидания на брокере, работающем на порту 61617, и потребитель, подключенный на порт 61616, никогда не получает сообщения брокеру.
Останавливает ли сеть брокера пересылку сообщений без включенной функции AdvisorSupport? Я думал, что это было исправлено в недавнем выпуске. (Я использую выпуск activemq 5.4.2).
Не активна ли статическая сеть activemq брокера, чтобы остановить переадресацию сообщений AdvisorSupport отключен?
Обновление:
Я столкнулся с проблемами, используя advisorySupport = "false" и staticallyIncludedDestitions.
Мы используем JMS в основном для запроса-ответа, как описано здесь: http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html
Мы используем временную очередь на стороне источника, чтобы иметь возможность получать ответ от потребителей, и так как staticallyIncludedDestination не может включать в себя эти имена временных очередей, поэтому все производители не могут получать ответы от клиентов, когда отключен advisorySupport.
Я прихожу к выводу, что для нашего сценария консультативная поддержка не может быть отключена, если нет какого-то другого трюка с настройкой, о котором я не знаю.