带有zookeeper的activeMQ主/从集群

时间:2014-05-29 13:58:57

标签: activemq apache-zookeeper

我将activeMQ连接到zookeeper(5个动物园管理员的集群),在配置文件“activemq.xml”中,我有

<persistenceAdapter>
            <replicatedLevelDB
                directory="${activemq.data}/leveldb"
                replicas="3"
                bind="tcp://0.0.0.0:0"
                zkAddress="blablabla:2181"
                        zkPassword="password"
                zkPath="/activemq/leveldb-stores"
                hostname="blabla"
            />
  </persistenceAdapter>

现在我已经启动了activeMQ-server1,成功成为了主人; activeMQ-server2具有相同的“activemq.xml”配置文件,成功成为slave; activeMQ-server3具有相同的“activemq.xml”配置文件,成功成为slave,但启动activeMQ-server2(开始给出连接错误)

我想我为副本添加了错误的数字,我用“replicas =”4“”更改了所有3个配置文件,仍然无法正常工作

3个activeMQ服务器的正确副本号是多少,或者其他部分错误。 (我只在配置中列出了1个zookeeper,因为5个动物园管理员可以相互连接,已经是一个集群了)

谢谢:)

2 个答案:

答案 0 :(得分:1)

您需要列出zkAddress部分中的所有zookeeper服务器zkAddress="zoo1.example.org:2181,zoo2.example.org:2181,zoo3.example.org:2181",取自activemq replicated levelDB

答案 1 :(得分:0)

副本值是activemq节点的数量,而不是zookeeper节点的数量。因此,如果您有3个amq节点,请设置replicas =&#34; 3&#34;,而不是更多。 http://activemq.apache.org/replicated-leveldb-store.html

Replicas property :
The number of nodes that will exist in the cluster.
At least (replicas/2)+1 nodes must be online to avoid service outage.

另一件事,集群中的所有amq节点必须具有相同的名称(下面的MyBroker):

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="MyBroker" dataDirectory="${activemq.data}">