ActiveMQ:使用LevelDB复制时,集群成员不足

时间:2015-05-26 21:08:09

标签: activemq apache-zookeeper

我正在尝试将ActiveMQ配置为在同一台计算机上使用带有两个zookeeper实例的LevelDB。这是activeMQ配置:

<persistenceAdapter>

  <replicatedLevelDB zkAddress="localhost:2181,localhost:2182"

      directory="${activemq.data}/leveldb"  replicas="2"

      hostname="localhost"/>

</persistenceAdapter>

在Zookeeper端,我配置了两台具有以下配置的服务器。
服务器1:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/user1/z1/zookeeper-3.4.6/data
clientPort=2181
server.1=localhost:2888:3888
server.2=localhost:2889:3889

服务器2:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/user1/z2/zookeeper-3.4.6/data
clientPort=2182
server.1=localhost:2888:3888
server.2=localhost:2889:3889

我在每个服务器上包含“1”和“2”的数据文件夹下创建了文件 myid 。 Zookeeper启动correclty,从日志中我可以看到发现了服务器。 问题是ActiveMQ只发现了两个节点中的一个节点,如以下消息所示:

2015-05-26 22:45:31,938 | INFO  | Session establishment complete on server example.com/127.0.0.1:2182, sessionid = 0x24d91f53ba50000, negotiated timeout = 4000 | org.apache.zookeeper.ClientCnxn | main-SendThread(example.com:2182)
2015-05-26 22:45:32,831 | INFO  | Not enough cluster members connected to elect a master. | org.apache.activemq.leveldb.replicated.MasterElector | main-EventThread

任何帮助?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并在activemq mailing list

找到了解决方案

使用zookeeper的activemq中的所有代理节点基本上应该具有相同的代理名称。