ActiveMQ + ZooKeeper 集群高可用配置

一. 准备条件: 


  (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官网





                                    

  



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值