Azure上搭建ActiveMQ集群-基于ZooKeeper配置ActiveMQ高可用性集群

ActiveMQ从5.9.0版本开始,集群实现方式取消了传统的Master-Slave方式,增长了基于ZooKeeper+LevelDB的实现方式。java

本文主要介绍了在Windows环境下配置基于ZooKeeper的ActiveMQ高可用性集群,集群实现了主备功能,实现了单点故障时的高可用性,并不涉及负载均衡技术。apache

从总体上看,整个安装配置过程主要有如下几个步骤:windows

1. Windows Server环境搭建、端口配置
2. Jre安装配置
3. Zookeeper安装配置
4. ActiveMQ安装配置服务器

本文中咱们搭建3个节点的Zookeeper和ActiveMQ集群,总体架构:架构

各类组件使用的是:
 基于Windows Azure的Windows Server2012
 JDK 1.7
 ZooKeeper 3.4.6
 ActiveMQ 5.12oracle

1、 Windows Server环境搭建、端口配置负载均衡

咱们须要搭建3个Windows Server虚拟机,用做Zookeeper的三个节点以及消息服务器。tcp

1. 建立Windows Server虚拟机(三个)测试

 

进入Windows Azure的管理控制台,选择New-Compute-Virtual Machine-From Galleryspa

选择Windows Server镜像,选择Windows Server2012 R2 DataCenter

配置如下开放的端口:

2. 配置端口说明

 

2、 JRE安装配置

ZooKeeper和ActiveMQ都依赖于Jdk,所以咱们须要先安装配置JDK1.7
1. JDK下载
JDK的下载地址为:
http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-windows-x64.exe?AuthParam=1446712677_06310dc4ac8a4e8664ae69cb80b6659a
2. JDK安装、配置环境变量
双击exe直接安装,依次下一步处理,注意,路径中不能包含汉字。

将JAVA_HOME加入到环境变量,并生效

环境变量CLASS_PATH:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

3、 安装配置ZooKeeper

目前咱们已经建立了三个Window Server 2012虚拟机

 

1. 在10.***.***.47上配置Zookeeper-1
主要配置Zoo.Cfg文件、新建Data文件夹和myid文件
zookeeper文件目录:

修改Conf中的zoo.cfg文件(将zoo_sample.cfg更名为zoo.cfg),

设置下Data文件夹的路径,例如:dataDir=C:\\zookeeper\\data
Data文件夹须要新建
设置ZooKeeper集群,这里咱们用了3个节点,如下是集群配置:
server.1=10.***.***.47:2888:3888
server.2=10.***.***.27:2888:3888
server.3=10.***.***.51:2888:3888
在Data文件夹下新建MyID文件,MyID文件中的内容为当前Node的ID,例如1

2. 在10.***.***.27上配置Zookeeper-2
与配置Zookeeper-1相同,不一样的是myid文件的内容:2
3. 在10.***.***.51上配置Zookeeper-3
与配置Zookeeper-1相同,不一样的是myid文件的内容:3
4. 启动zookeeper
Windows下启动Zookeeper是执行bin目录下的zkServer.cmd文件,
依次启动三个虚拟机上的zookeeper:

4、 安装配置ActiveMQ集群

下载ActiveMQ,

http://mirror.bit.edu.cn/apache/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz

将ActiveMQ拷贝到三个Windows虚拟机中。

1. 修改ActiveMQ配置
ActiveMQ的配置文件在Conf文件夹下的ActiveMQ.xml,咱们主要修改两个地方:
BrokerName:三个节点的ActiveMQ的BrokerName必须一致,例如:teldbroker

persistenceAdaper:主要配置zkAddress(三个Zookeeper节点)和hostname

hostname是本机的IP

 

在其余两个虚拟机上进行统一的配置,注意不一样的虚拟机不一样的hostname.

2. 启动ActiveMQ
在三台虚拟机上依次启动ActiveMQ:在bin目录执行:activemq start

3. 链接ActiveMQ
ActiveMQ在集群模式下的链接字符串是不一样的:

failover:(tcp://42.***.***.90:61616,tcp://42.***.***.193:61616,tcp://42.***.***.140:61616)

ActiveMQ IConnection Demo

5、 ActiveMQ集群高可用性测试

1. ActiveMQ集群切换
关闭当前正在提供服务的ActiveMQ Master节点,其余的Slave节点中选定其中一个自动提高为Master节点。程序能够正常链接MQ服务。
消息发送完备后,切换ActiveMQ节点,消息能够正常消费。
当前Master节点的Web Console能够访问。

2. ZooKeeper集群切换

ZooKeeper的一个Leader节点关闭后,其余的Follower节点会被选中一个提高为Leader节点。

ActiveMQ能够正常访问。

 

以上是在Azure云端搭建ActiveMQ集群,分析给你们。

 

周国庆

2019/3/14

相关文章
相关标签/搜索