玩转ActiveMQ与Zookeeper集群

MQ: Message Queue消息队列html

ActiveMQ:Apache出品,最流行的,能力强劲的开源消息总线。web

用途和优势apache

1.将数据从一个应用程序传送到另外一个应用程序,或者从软件的一个模块传送到另一个模块;vim

2.负责创建网络通讯的通道,进行数据的可靠传送;后端

3.保证数据不重复,不丢失;网络

4.可以实现跨平台操做;tcp

ActiveMQ应用场景日志

1,多个项目之间集成;code

2,下降系统间模块的耦合度、解耦;orm

3,系统先后端隔离;

安装与配置

1.下载地址 http://activemq.apache.org/download.html

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&amp;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集群安装请查看文章https://mp.weixin.qq.com/s/aZe1Z-6qsGwUTYlObu5CVA

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。

 

到此安装就此结束了。

版本分别为JDK八、Zookeeper3.4.十、ActiveMQ5.15.三、Centos6.5;机器是虚拟机;

安装异常问题

Q:遇到未知的服务和名称

A:修改hosts文件 192.168.16.128  jin(hostname)

hostname

 

Q:集群搭建成功,当Master宕机,Slave没有选举为Master

A:三台集群端口一致为tcp://0.0.0.0.0,还有默认端口和消息端口使用默认。修改成不一样端口,重启解决。

Q:MQ消息队列启动失败

A:JDK版本与MQ版本是否对应

Q:防火墙需关闭


启动Zookeeper与ActiveMQ以前是须要安装JDK

▼长按如下二维码便可关注▼