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

ActiveMQ: Not enough cluster members when using LevelDB replication

我正在尝试将 ActiveMQ 配置为在同一台机器上使用 LevelDB 和两个 zookeeper 实例。这是 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 正确启动,从日志中我可以看到服务器已被发现。 问题是 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

有什么帮助吗?

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

找到了解决方案

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