#java #jakarta-ee #jms #messaging #activemq
#java #джакарта-ee #jms #обмен сообщениями #activemq
Вопрос:
Мы настраиваем пул / сеть брокеров ActiveMQ. Проблема, с которой мы сталкиваемся, заключается в том, что каждый экземпляр брокера должен знать, кто еще находится в сети. т.е. Нам нужно обновить конфигурацию (uri) xml, когда новый брокер добавляется в пул, а затем освободить всех брокеров. Это трудоемкий процесс и кажется чрезмерным.
Есть ли лучший подход? Мы подумали о динамическом обнаружении, для которого требуется многоадресная рассылка (не уверен, поддерживается ли она)
Есть ли одно место, где мы можем обновлять, кто находится в сети, а не в каждом экземпляре брокера?
Любая помощь будет оценена.
Ответ №1:
Сеть брокеров с динамическим обнаружением с использованием многоадресной рассылки является стандартным примером, пожалуйста, смотрите Документы network of brokers .
Кроме того, поддерживается динамическая перебалансировка и обновление клиентов (версия AMQ> = 5.4) ( updateClusterClients
, rebalanceClusterClients
), пожалуйста, обратитесь к документам по отказоустойчивости.
Комментарии:
1. поддерживает ли динамическая перебалансировка пересылку сообщений? Если у одного брокера, который недавно присоединился, нет потребителей, может ли он пересылать сообщения другим брокерам?
2. @VanchinathanChandrasekaran: Да, сети ActiveMQ используют концепцию хранения и пересылки. Сообщения сохраняются в локальном брокере перед пересылкой по сети другому брокеру. Это означает, что сообщения передаются от брокера к брокеру, пока не достигнут потребителя.
3. Спасибо за обновление. У меня последний вопрос. Отказоустойчивость обновляется динамически на стороне клиента. Что происходит, когда один из производителей или потребителей выходит из строя и возвращается. он все равно будет подключаться к первоначальному пулу брокеров, верно? Как он узнает о новых брокерах, которые были добавлены в пул? учитывая, что у производителя и потребителя была статическая конфигурация аварийного переключения.
4. @VanchinathanChandrasekaran: Да, при статической конфигурации вы «вернетесь» к этим значениям. Если у вас сейчас, например, есть главный брокер, который не настроен внутри URL-адреса вашего клиента для отработки отказа, клиент не может найти этого брокера.