ActiveMQ Network Brokers
Я пытаюсь создать сеть ActiveMQ, которая будет состоять из 2 брокеров. Затем я выполнил настройку, как описано в соответствующем руководстве (http://activemq.apache.org/networks-of-brokers.html).
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://activemq.org/config/1.0">
<broker brokerName="receiver" persistent="false" useJmx="false">
<networkConnectors>
<networkConnector uri="static:(tcp://host2:61616)"/>
</networkConnectors>
<persistenceAdapter>
<memoryPersistenceAdapter/>
</persistenceAdapter>
<transportConnectors>
<transportConnector uri="tcp://host1:61616"/>
</transportConnectors>
</broker>
</beans>
В приведенной выше конфигурации XML я предполагаю, что один из сетевых брокеров работает на host1, а другой на host2. Брокер, работающий на хосте 2, будет иметь противоположные значения. JMS не запускается и не генерирует никаких исключений в файлах журнала, появляется только одно сообщение:
INFO | Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@3df78040: startup date [Tue Nov 22 20:54:53 CET 2011]; root of context hierarchy | org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
Кому-нибудь удалось настроить сеть из двух или более брокеров ActiveMQ?
2 ответа
Если вы используете статическую сеть брокеров, вам необходимо указать все ips брокеров, образующих сеть брокеров.
<networkConnector name="HA Queue" uri="static:(tcp://host1:61616,tcp://host2:61616)"/>
также попробуйте указать транспортный соединитель следующим образом:
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616" />
</transportConnectors>
Это очень распространенная вещь, связанная с ActiveMQ. Вы можете получить пример конфигурации, на которой будет основана ваша сеть брокеров, в каталоге ${ACTIVEMQ_HOME}/conf (activemq-static-network-broker1.xml и activemq-static-network-broker2.xml).
Из того, что я вижу, пространства имен вашей конфигурации неверны. Следует читать:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="static-broker1">
<!-- other stuff goes here -->
</broker>
</beans>
Главное, что нужно знать, это то, что это конфигурация Spring (http://www.springframework.org/schema/beans), которая имеет конфигурацию XBean, которая определяет брокера AMQ (http://activemq.apache.org/ схема / ядро).
Я также повторил бы то, что сказал Сродригес, используйте 0.0.0.0 в качестве имени хоста вашего transportConnector.