ActiveMQ网络经纪人

时间:2011-11-23 08:54:21

标签: networking activemq broker

我正在尝试创建一个由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经纪人组成的网络?

2 个答案:

答案 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的主机名。