我正在尝试创建一个由2个经纪人组成的ActiveMQ网络。我已完成相关指南(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中运行。在host2上运行的代理将具有相反的值。 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经纪人组成的网络?
答案 0 :(得分:1)
如果您使用static network of brokers,则需要指定构成经纪人网络的经纪人的所有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>
答案 1 :(得分:1)
这与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),它有一个定义AMQ代理的XBean配置(http://activemq.apache) .ORG /模式/芯)。
我也回应srodriguez所说的,使用0.0.0.0作为transportConnector的主机名。