ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4453字,纯文字阅读大概需要7分钟。
内容图文
![ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)](/upload/InfoBanner/zyjiaocheng/479/d059a121b50d40f283e041ef86bff9b1.jpg)
所有需要同步的 disk 的消息操作都将等待存储状态被复制到其他法定节点的操作完成才能完成。所
以,如果你配置了 replicas=3,那么法定大小是(3/2)+1=2。Master将会存储并更新然后等待 (2-1)=1 个
Slave 存储和更新完成,才汇报success。至于为什么是 2-1,熟悉Zookeeper的应该知道,有一个node
要作为观擦者存在。当一个新的Master 被选中,你需要至少保障一个法定node在线以能够找到拥有最新
状态的node。这个node可以成为新的 Master。因此,推荐运行至少3个replica nodes,以防止一个node
失败了,服务中断。(原理与ZooKeeper集群的高可用实现方式类似)
1、ActiveMQ 集群部署规划:
环境:CentOS 6.6 x64 、 JDK8
版本:ActiveMQ 5.13.4
ZooKeeper 集群环境:192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
(ZooKeeper 集群部署请参考http://bobbie.blog.51cto.com/8986511/1912740)
主机 | 集群端口 | 管理端口 | 节点安装目录 |
192.168.1.14 | 61616 | 8161 | /usr/local/activemq/ |
192.168.1.15 | /usr/local/activemq/ | ||
192.168.1.16 | /usr/local/activemq/ |
注意:端口在master上启动,其它2个slave没有这2个端口
2、防火墙打开对应的端口
vim /etc/sysconfig/iptables # mq cluster -A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
3、下载解压参照:http://bobbie.blog.51cto.com/8986511/1913006
4、集群配置:
在 3 个 ActiveMQ 节点中配置 conf/activemq.xml 中的持久化适配器。修改其中 bind、zkAddress、
hostname 和 zkPath。注意:每个 ActiveMQ 的 BrokerName 必须相同,否则不能加入集群。
Node1中的持久化配置:
vim /usr/local/activemq/conf/activemq.xml 18 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="cluster" dataDirectory="${activemq.data}"> 37 <persistenceAdapter> 38 <replicatedLevelDB 39 directory="${activemq.data}/leveldb" 40 replicas="3" 41 bind="tcp://0.0.0.0:0" 42 zkAddress="192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181" 43 hostname="192.168.1.14" 44 sync="local_disk" 45 zkPath="/activemq/leveldb-stores" 46 /> 47 </persistenceAdapter>
Node2中的持久化配置:
vim /usr/local/activemq/conf/activemq.xml 18 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="cluster" dataDirectory="${activemq.data}"> 37 <persistenceAdapter> 38 <replicatedLevelDB 39 directory="${activemq.data}/leveldb" 40 replicas="3" 41 bind="tcp://0.0.0.0:0" 42 zkAddress="192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181" 43 hostname="192.168.1.15" 44 sync="local_disk" 45 zkPath="/activemq/leveldb-stores" 46 /> 47 </persistenceAdapter>
Node3中的持久化配置:
vim /usr/local/activemq/conf/activemq.xml 18 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="cluster" dataDirectory="${activemq.data}"> 37 <persistenceAdapter> 38 <replicatedLevelDB 39 directory="${activemq.data}/leveldb" 40 replicas="3" 41 bind="tcp://0.0.0.0:0" 42 zkAddress="192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181" 43 hostname="192.168.1.16" 44 sync="local_disk" 45 zkPath="/activemq/leveldb-stores" 46 /> 47 </persistenceAdapter>
5、按顺序启动3个ActiveMQ节点:
/etc/init.d/activemq start
6、集群的节点状态分析:
集群启动后可以看到ActiveMQ的有3个节点,分别是00000000000,00000000001,00000000002。第一个00000000000的值,可以看到elected的值是不为空,说明这个节点是Master,其他两个节点是 Slave。
7、集群可用性测试:
ActiveMQ 的客户端只能访问 Master 的 Broker,其他处于 Slave 的 Broker 不能访问。所以客户端连
接 Broker 应该使用 failover 协议。
failover:(tcp://192.168.1.14:61616,tcp://192.168.1.15:61616,tcp://192.168.1.16:61616)?randomize=false
当一个ActiveMQ节点挂掉,或者一个ZooKeeper节点挂掉,ActiveMQ 服务依然正常运转。如果仅剩
一个 ActiveMQ 节点,因为不能选举Master,ActiveMQ 不能正常运转;同样的,如果ZooKeeper仅剩一个节点活动,不管 ActiveMQ各节点是否存活,ActiveMQ也不能正常提供服务。
单节配置点请单击:http://bobbie.blog.51cto.com/8986511/1913006
本文出自 “专注” 博客,请务必保留此出处http://bobbie.blog.51cto.com/8986511/1913052
ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)
标签:activemq集群
本文系统来源:http://bobbie.blog.51cto.com/8986511/1913052
内容总结
以上是互联网集市为您收集整理的ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)全部内容,希望文章能够帮你解决ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。