码迷,mamicode.com
首页 > 其他好文 > 详细

ActiveMQ + ZooKeeper 集群高可用配置

时间:2015-04-18 08:47:33      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:zookeeper   集群   activemq   

一. 准备条件: 


  (1) 最好是有3台服务器【2台也行, 只是根据(replicas/2)+1 公式至少得2个ActiveMQ服务存在才能保证运行, 自己测试的时候麻烦点, 关掉其中一个, 再开启, 看会不会选举到另一个ActiveMQ服务, 多试几次可以看到效果】


  (2)  ActiveMQ安装参考: ActiveMQ


  (3)  ZooKeeper安装参考:ZooKeeper 




二. 配置 : 

ActiveMQ根目录下的conf/activemq.xml, 原来默认如下:

<persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>

修改为(hostname根据服务器不同做出改变, 其他配置相同):

  <persistenceAdapter>

    <replicatedLevelDB

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

      replicas="3"

      bind="tcp://0.0.0.0:0"

      zkAddress="172.17.110.1:2181"

      zkPassword="password"

      hostname="172.17.110.1"

      sync="local_disk"

      zkPath="/activemq/leveldb-stores"

      />
  </persistenceAdapter>
directory : 存储数据的路径


replicas : 集群中的节点数【(replicas/2)+1公式表示集群中至少要正常运行的服务数量】, 3台集群那么允许1台宕机, 另外两台要正常运行


bind : 当这个节点成为Master, 它会绑定配置好的地址和端口来履行主从复制协议


zkAddress : ZooKeeper的ip和port, 如果是集群, 则用逗号隔开(这里作为简单示例ZooKeeper配置为单点, 这样已经适用于大多数环境了, 集群也就多几个配置)


zkPassword : 当连接到ZooKeeper服务器时用的密码


hostname : 本机ip


sync :  在认为消息被消费完成前, 同步信息所存贮的策略, 如果有多种策略用逗号隔开, ActiveMQ会选择较强的策略(local_mem, local_disk则肯定选择存贮在本地硬盘)


zkPath : ZooKeeper选举信息交换的存贮路径




三. 测试


Step1 : 

根据ZooKeeper的策略, 从三台ActiveMQ服务器选一台运行, 其他两台等待运行, 只是做数据上的主从同步。

所以, 启动ZooKeeper服务器和ActiveMQ服务器后, 访问http://172.17.110.1:8161/admin/ 、 http://172.17.110.2:8161/admin/、 http://172.17.110.3:8161/admin/ 只会有一个成功。


Step2 : 

关闭能访问http://ip:8161/admin/的ActiveMQ服务, 访问其他两个, 其中有一个能访问, 说明ActiveMQ + ZooKeeper 集群高可用配置已经成功。




四. 参考文档


ActiveMQ官网


ZooKeeper官网





                                    

  



ActiveMQ + ZooKeeper 集群高可用配置

标签:zookeeper   集群   activemq   

原文地址:http://blog.csdn.net/wenniuwuren/article/details/45105161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!