我正在尝试将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
任何帮助?
答案 0 :(得分:2)
我遇到了同样的问题,并在activemq mailing list
找到了解决方案使用zookeeper的activemq中的所有代理节点基本上应该具有相同的代理名称。