ActiveMQ进阶(二)ActiveMQ主从搭建

前言

      本章学习ActiveMQ的主从搭建

方法

1.概念

我们之前学习过Redis的主从复制,那么ActiveMQ的主从也是一样的。

Redis需要哨兵监控,而我们的ActiveMQ则需要zookeeper的帮助。下面让我们慢慢学习。

zookeeper(zk):

zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

简单的说,zk的功能就是为我们的ActiveMQ提供集群服务,监控MQ的主从节点,MQ主机宕机自动进行选举。

为了实现高可用,我们的zk也需要进行集群的搭建,本次选择三个zk进行搭建,一般是奇数个。

2.zookeeper集群搭建

注意:前提需要有JDK事先安装完毕

1)zookeeper的下载

网址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/

2)将下载好的安装包拷贝到linux服务器中

3)解压缩

tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local/

 4)进入到zk的配置目录找到zk的核心配置文件模板复制一份作为其配置文件

 5)创建zk临时数据目录,在目录中存放服务器唯一标识

另外两个服务器的myid为2和3

6)配置zk配置文件zoo.cfg

第一步:配置zoo.cfg的数据目录为之前我们建立的data目录

第二步:配置集群所需要的配置。需要 server.编号= ip:投票端口:选举端口

投票端口:用来决定正在运行的主机是否宕机

选举端口:用来决定哪一个zk作为主机

以上配置保证了ZK的高可用,避免一个ZK宕机造成的严重后果。

上述投票端口以及选举端口可以进行自定义配置!

上述代表配置三个zk,ip以及对应的投票端口和选举端口

7)启动zk

8)验证zookeeper集群

 使用如下命令查找主从:

192.168.1.103:

192.168.1.104:

192.168.1.105:

通过上面我们不难看出,104是主机,103和105是从机,它们一起构成了zk集群服务。

3.ActiveMQ主从搭建

我们将使用192.168.1.103,192.168.1.104以及192.168.1.105三台服务器实现MQ的主从搭建。

我们需要实现将MQ分别安装在这三台服务器中。

官方介绍了三种主从的搭建机制,这里我们选择第三种

从上面可以看出,因为快所以我们建议使用这个。

 1)配置MQ配置文件activemq.xml

这里我们将采用LevelDB的持久化机制,并配合zookeeper实现主从搭建。

首先需要修改对应三台MQ的broker的name保持一致,本次指定为mq-cluster:

其次需要对MQ的服务端口进行修改,三个分别为:61616,61617,61618

最后,在这里<persistenceAdapter>下加入如下配置:

<persistenceAdapter>
	<replicatedLevelDB 
		directory="${activemq.data}/leveldb" 
		replicas="3" 
		bind="tcp://0.0.0.0:62623" 
		zkAddress="192.168.1.103:2181,192.168.1.104:2181,192.168.1.105:2181" 
		hostname="192.168.1.103" 
		zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>

主要配置讲解:

  • directory:表示leveldb数据库持久化文件的存储位置
  • replicas:表示MQ的节点个数
  • bind:该处绑定MQ之间的通信端口,为了避免冲突分别设置为62623,62624,62625
  • zkAddress:该处绑定zk的ip和端口号,本次是三个zk
  • hostname:该处表示主机的ip,103即设置为192.168.1.103
  • zkPath:该处表示主从节点信息存储的位置,默认位置为zk目录下的/activemq/leveldb-stores

2)配置jetty.xml文件

为了避免我们的web应用管理界面发生端口冲突,我们对三个MQ分别进行修改,分别为8161,8162,8163

3)分别启动三个MQ

 

观察各自的MQ是否成功启动:

 

4)查询MQ的主从节点信息

进入到zk的bin目录下,运行如下指令:

 

进入到对应的MQ节点信息存储目录:

 

我们可以发现三个节点,15,16,17

那么到底哪个MQ是主节点呢,我们使用如下命令查看节点信息:

17节点信息如下:

从上面可以看出,该节点不是主节点,而是从节点,因为它的elected的属性值是null

15节点信息如下:

从上面可以看出,该节点是主节点,因为它的elected的属性值存在

主节点为104,从节点那就是103和105了。

访问主机的web应用地址:

那么,大家可以试试将主MQ宕机,看是否会选出新的主机,我这里试下来是没问题的。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值