ActiveMQ集群

Posted guanghe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ集群相关的知识,希望对你有一定的参考价值。

ZooKeeper+ActiveMQ可以实现主从模式和集群模式

一、主从模式

  Master-Slave主从模式是一种高可用解决方案,在Zookeeper中注册若干ActiveMQ Broker,其中只有一个Broker提供对外服务(Master),其他Broker处于待机状态(Slave)。当Master出现故障导致宕机时,通过Zookeeper内部的选举机制,选举出一台Slave替代Master继续对外服务。

首先搭建zookeeper集群

技术图片

1,安装zookeeper并创建data数据目录

2,创建conf/zoo.cfg设置data数据目录、端口和server

1 dataDir=/opt/zookeeper/apache-zookeeper-3.5.5-1/data
2 clientPort=2181
3 server.1=192.168.50.30:2881:3881
4 server.2=192.168.50.30:2882:3882
5 server.3=192.168.50.30:2883:3883

3,复制出三个zookeeper

4,在每个Zookeeper 应用内的data 目录中增加文件myid内部定义每个服务的编号. 编号要求为数字,是正整数可以使用回声命名快速定义myid文件

1 echo "1" > /opt/zookeeper/apache-zookeeper-3.5.5-1/data/myid
2 echo "2" > /opt/zookeeper/apache-zookeeper-3.5.5-2/data/myid
3 echo "3" > /opt/zookeeper/apache-zookeeper-3.5.5-3/data/myid

5,启动zookeeper

1 /opt/zookeeper/apache-zookeeper-3.5.5-1/bin/zkServer.sh start
2 /opt/zookeeper/apache-zookeeper-3.5.5-2/bin/zkServer.sh start
3 /opt/zookeeper/apache-zookeeper-3.5.5-3/bin/zkServer.sh start

6,测试zookeeper集群

  连接一个zookeeper,实际上就连接上了整个zookeeper集群。

1 /opt/zookeeper/apache-zookeeper-3.5.5-1/bin/zkCli.sh -server 192.168.50.30:2181

技术图片

然后配置ActiveMQ主从模式

 1,复制三份ActiveMQ,配置conf/jetty.xml中端口为8161、8162、8163

2,修改conf/activemq.xml 文件。

修改broker 标签属性信息,统一所有节点的broker 命名。

1 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq-cluster" dataDirectory="$activemq.data">

修改broker 标签中子标签persistenceAdapter 相关内容。

replicas 属性代表当前主从模型中的节点数量。按需配置。

bind 属性中的端口为主从实例之间的通讯端口。代表当前实例对外开放端口是什么,三个实例分别使用62626、62627、62628 端口。

zkAddress 属性代表ZooKeeper 安装位置,安装具体情况设置。

zkPath 是ActiveMQ 主从信息保存到ZooKeeper 中的什么目录内。

hostname 为ActiveMQ 实例安装Linux 的主机名,可以在/etc/hosts 配置文件中设置。设置格式为:IP 主机名。如: 127.0.0.1 mq-server

 1 <persistenceAdapter>
 2     <!-- <kahaDB directory="$activemq.data/kahadb"/> -->
 3     <replicatedLevelDB 
 4         directory="$activemq.data/levelDB"
 5         replicas="3"
 6         bind="tcp://0.0.0.0:62626"
 7         zkAddress="192.168.50.30:2181,192.168.50.30:2182,192.168.50.30:2183"
 8         zkPath="/activemq/leveldb-stores"
 9         hostname="guangheV30"
10     />
11 </persistenceAdapter>

修改ActiveMQ 对外提供的服务端口。原默认端口为61616。当前环境使用的端口为:61616、61617、61618,修改conf/activemq.xml 配置文件。修改broker 标签中子标签transportConnectors 中tcp那一项的相关配置。

3,启动activeMQ主从

1 /opt/activemq/apache-activemq-5.15.9-1/bin/activemq start
2 /opt/activemq/apache-activemq-5.15.9-2/bin/activemq start
3 /opt/activemq/apache-activemq-5.15.9-3/bin/activemq start

4,查看activeMQ主从

进入zookeeper,$zkHome/bin/zkCli.sh

连接成功后,可以使用命令‘ls’查看ZooKeeper 中的目录结构
如:
  ls /
  ls /activemq/leveldb-stores
找到对应的内容后,可以使用命令‘get’查看ZooKeeper 中的数据内容
  get /activemq/leveldb-stores/00000000000

技术图片

二、集群模式

 

以上是关于ActiveMQ集群的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ集群应用

activeMQ集群的安装

ActiveMQ——ActiveMQ的集群

ActiveMQ(13):ActiveMQ的集群

ActiveMQ集群应用

Activemq集群搭建