为什么使用ActiveMQ集群
Posted 木子道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么使用ActiveMQ集群相关的知识,希望对你有一定的参考价值。
MQ: Message Queue消息队列
ActiveMQ:Apache出品,最流行的,能力强劲的开源消息总线。
用途和优点
1.将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块;
2.负责建立网络通信的通道,进行数据的可靠传送;
3.保证数据不重复,不丢失;
4.能够实现跨平台操作;
ActiveMQ应用场景
1,多个项目之间集成;
2,降低系统间模块的耦合度、解耦;
3,系统前后端隔离;
安装与配置
2.解压安装
tar -zxvf apache-activemq-5.15.3-bin.tar.gz -c /usr/local
3.重命名
mv apache-activemq-5.15.3 activemq
4.修改配置文件vim activemq/conf/activemq.xml
机器1.2.3修改集群名 三台机器必须一样
brokerName="activemq-cluster"
修改vim activemq/conf/activemq.xml持久化方式
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3" //集群节点个数
bind="tcp://0.0.0.0.61621" //集群通讯端口
//zookeeper 集群地址
zkAddress="192.168.16.128:2181,192.168.16.130:2181,192.168.16.129:2181"
hostname="192.168.16.128" //本机ip,hosts ip对应hostname
zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>
修改vim activemq/conf/activemq.xml的消息端口 51516
<transportConnector name="openwire" uri="tcp://0.0.0.0:51516?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
修改vim activemq/conf/jetty.xml管控台端口 (192.168.16.128:8161)
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
</bean>
根据以上步骤修改每台机器上的配置
机器IP | 管控台端口 | 集群通讯端口 | 消息端口 |
---|---|---|---|
192.168.16.128 | 8261 | 61621 | 51516 |
192.168.16.129 | 8262 |
61622 |
51517 |
192.168.16.130 |
8263 | 61623 | 51518 |
启动Zookeeper集群安装请查看文章
1.首先启动zookeeper集群 /zkServer.sh start
2.查看/zkServer.sh status 状态
3.启动activemq ./activemq start / stop /status/console(启动并查看日志)
4.查看zookeeper信息 ./zkCli.sh
查看是否有activemq信息 ls /
[activemq, zookeeper]
查看activemq集群是否持久化到zookeeper ls /activemq/leveldb-stores
[00000000086, 00000000084, 00000000085]
界面访问
分别访问
http://192.168.16.130:8163/
http://192.168.16.129:8162/
http://192.168.16.128:8161/
有两个链接不能访问是属于正常,两个链接属于待机状态并没有真正实现MQ,当Master宕机,从两台Slave中选举一个为Master。
到此安装就此结束了。
版本分别为JDK8、Zookeeper3.4.10、ActiveMQ5.15.3
安装异常问题
Q:遇到未知的服务和名称
A:修改hosts文件 192.168.16.128 jingyu(hostname)
hostname
Q:集群搭建成功,当Master宕机,Slave没有选举为Master
A:三台集群端口一致为tcp://0.0.0.0.0,还有默认端口和消息端口使用默认。修改为不同端口,重启解决。
Q:MQ消息队列启动失败
A:JDK版本与MQ版本是否对应
启动Zookeeper与ActiveMQ之前是需要安装JDK
▼长按以下二维码即可关注▼
以上是关于为什么使用ActiveMQ集群的主要内容,如果未能解决你的问题,请参考以下文章
JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建搜索功能切换到集群版Activemq消息队列搭建与使用