Activemq停止工作 - activemq / zookeeper设置

时间:2016-12-13 08:15:01

标签: activemq apache-zookeeper

我在1个群集中配置了3个zookeepers和3个activemq实例。

示例

  • 只有1个主服务器和3个主服务器的3个activemq实例是slave。
  • 所有3个activemq实例都在运行,即sudo service activemq status返回running但是检查日志,1个实例(activemq1)当前正在等待其他集群成员,1个实例(activemq2)停止,1个实例( activemq3)有错误。假设我们只需要两个实例来选择master,这个设置应该能够成功运行。
  • 两个activemq实例应该正在运行
  • zookeeper实例运行正常。

问题

以下是各个activemq实例的堆栈跟踪。根据我的理解,它至少需要两个正确运行的activemq intances来为集群提名一个主实例。鉴于所有activemq instanes在发出running时都会生成sudo service activemq status,我假设每个activemq实例中都存在问题 - 请参阅下面的stacktraces。现在,我注意到日志,activemq1只能无法正常运行,因为其他activemq实例在内部失败。注意activemq2上的堆栈跟踪,它在成功连接到zookeeper并且activemq3出现问题后陷入困境,我仍需要弄清楚。重新启动activemq2和activemq3时,问题已得到解决。但是,我不能确定这不会再次发生,因此这个问题。

  • activem1显示以下stacktrace,我认为这是因为其他2个activemq实例正在运行但有错误

Session establishment complete on server 10.5.4.111/10.5.4.111:2181, sessionid = 0x1582db00708000c, negotiated timeout = 4000 Not enough cluster members connected to elect a master. Not enough cluster members connected to elect a master. Not enough cluster members connected to elect a master.

  • activemq2具有以下堆栈跟踪,这是我不理解的。它在成功连接到zookeeper后停止,应该由属于cluster-activem1和activemq3的其他activemq实例检测到

Opening socket connection to server 10.5.4.111/10.5.4.111:2181 Socket connection established to 10.5.4.111/10.5.4.111:2181, initiating session Session establishment complete on server 10.5.4.111/10.5.4.111:2181, sessionid = 0x1582db00708000d, negotiated timeout = 4000

  • activemq3具有以下stacktrace

    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)[apache-jsp-8.0.9.M3.jar:2.3]

activemq的配置

此前的配置是2s zkSessionTimeout - 这是默认值。我根据google搜索到4s,以最大化activemq实例将自己注册到zookeeper所需的时间。

<persistenceAdapter>
        <replicatedLevelDB 
            directory="${activemq.data}/leveldb"
            replicas="3"
            bind="tcp://0.0.0.0:61619"
            zkAddress="zookeeper_addresses_here"
            hostname="activemq_hostname_here"
            zkSessionTimeout="4s"
        />
    </persistenceAdapter>

zookeeper的配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/my/data/dir

clientPort=2181
server.1=activemq1_privateIP:2888:3888
server.2=activemq2_privateIP:2888:3888
server.3=activemq3_privateIP::2888:3888

autopurge.purgeInterval=24
autopurge.snapRetainCount=5

Zookeeper版本3.4.9

ActiveMQ版本5.13.4

通过Opswork设置

1 个答案:

答案 0 :(得分:0)

属性&#34;目录&#34; master-slave mq需要引用同一个文件夹