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


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

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

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

    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.12

    一、 Windows Server环境搭建、端口配置

    我们需要搭建3个Windows Server虚拟机,用作Zookeeper的三个节点以及消息服务器。

    1. 创建Windows Server虚拟机(三个)

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

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

    配置以下开放的端口:

    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%libdt.jar;%JAVA_HOME%lib ools.jar;

    三、 安装配置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:

    四、 安装配置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

    五、 ActiveMQ集群高可用性测试

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

    2. ZooKeeper集群切换

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

    ActiveMQ可以正常访问。

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

    周国庆

    2019/3/14

  • 相关阅读:
    Oracle存储过程获取YYYY-MM-DD的时间格式
    EXP/IMP 导出生产库表的指定数据到测试库一例
    java sm4国密算法加密、解密
    oracle 三表关联查询
    oracle 两表关联查询
    oracle 批量更新之将一个表的数据批量更新至另一个表
    js 不固定传参
    CocoaPods为project的全部target添加依赖支持
    QML 开发神奇加成之为网络资源设置本地缓存
    一步步走向国际乱码大赛-- 恶搞C语言
  • 原文地址:https://www.cnblogs.com/tianqing/p/6897196.html
Copyright © 2020-2023  润新知