ActiveMQ 的高可用方案(activemq + zookeeper)

本文采用伪集群的搭建方式,使用 3 台 Zookeeper,3 台 ActiveMQ。
使用环境:

  • CentOS7.4
  • jdk1.8
  • zookeeper-3.4.10
  • apache-activemq-5.15.0

1.搭建 Zookeeper 集群

https://blog.csdn.net/qq_40925105/article/details/86551122

2.搭建 ActiveMQ 集群

2.1 下载 ActiveMQ,并上传到服务器

下载地址:http://archive.apache.org/dist/activemq/

2.2 解压

tar -zxvf apache-activemq-5.15.0-bin.tar.gz

2.3 复制 activemq

在 /usr/local/ 目录下创建一个 java/activemqCloud 目录。把 zookeeper 解压后的文件夹复制到此目录下三份。分别命名为activemq1、activemq2、activemq3

mkdir -p /usr/local/java/activemqCloud 
cp -r apache-activemq-5.15.0 /usr/local/java/activemqCloud/activemq1
cp -r apache-activemq-5.15.0 /usr/local/java/activemqCloud/activemq2
cp -r apache-activemq-5.15.0 /usr/local/java/activemqCloud/activemq3

在这里插入图片描述

2.4 修改 ActiveMQ 配置

三个 activemq 都要修改

2.4.1 修改监控端口号

为防止端口冲突,要修改 activemq/conf/jetty.xml 配置文件中监控相关端口号。三个 activemq 要修改成不一样的端口,如:分别为 8161、8162、8163

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
             <!-- the default port number for the web console -->
        <property name="host" value="0.0.0.0"/>
         <!-- 默认端口号为 8161 -->
        <property name="port" value="8161"/>
</bean>

2.4.2 修改 activemq.xml 配置文件

文件位置:activemq/conf/activemq.xml

修改客户端连接的端口号

为防止端口冲突,三个 activemq 要使用不同的端口号,且不能与其它已使用的端口号冲突

<transportConnectors>
    <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
    <!-- 可以分别修改为:61616、61617、61618 -->
	<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
	<!-- 可以分别修改为:5672、5673、5674 -->
    <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <!-- 可以分别修改为:61613、61614、61615-->
    <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <!-- 可以分别修改为:1883、1884、1885-->
    <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <!-- 可以分别修改为:61610、61611、61612-->
    <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors>
修改持久化策略

三个 activemq 都需要修改,注意端口号不要冲突

<persistenceAdapter>
	<!-- 注释掉默认持久化策略 -->
	<!-- <kahaDB directory="${activemq.data}/kahadb"/>-->
	<!-- 添加 LevelDB 持久化策略 -->
	<replicatedLevelDB 
        directory="${activemq.data}/levelDB"
        replicas="2"
        bind="tcp://0.0.0.0:8981"
        zkAddress="140.21.0.1:2181,140.21.0.1:2182,140.21.0.1:2183"
        hostname="140.21.0.1"
        zkPath="/activemq/leveldb"/> 
</persistenceAdapter>

directory: levelDB 数据文件存储的位置
replicas:计算公式(replicas/2)+1 , 当 replicas 的值为 2 的时候, 最终的结果是2,表示集群中至少有 2 台是启动的
bind: 用来负责 slave 和 master 的数据同步的 ip 和端口
zkAddress: 表示 zookeeper 集群地址
hostname:本机 ip

3.启动 zookeeper 和 activemq

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值