使用Zookeeper搭建ActiveMQ伪集群(同一台机器)

本文章默认zookeeper集群已搭建完成,zookeeper集群的搭建请参考https://blog.csdn.net/u010229677/article/details/103811307

1.创建存放目录并下载activemq安装包

mkdir /home/activemq_cluster

cd /home/activemq_cluster

wget https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz

2.解压并重命名

tar -xvf  apache-activemq-5.14.0-bin.tar.gz 

mv  apache-activemq-5.14.0  activemq1

cp -r activemq1 activemq2

cp -r activemq1 activemq3

ll 确认activemq_cluster文件夹下有 activemq1,activemq2,activemq3三个文件夹

3.修改配置文件(conf/activemq.xml,conf/jetty.xml)

cd .. 返回activemq_cluster目录

vi  activemq1/conf/activemq.xml

a.找到<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">给brokerName赋值为brokerName="ActiveMQ_Cluister",注意集群中的各节点brokerName的值必须一致

b.找到  <kahaDB directory="${activemq.data}/kahadb"/>,将父节点中的内容替换为

 <persistenceAdapter>
            <!--
            <kahaDB directory="${activemq.data}/kahadb"/>
           -->
            <replicatedLevelDB
                 replicas="3"     #节点数量
                 bind="tcp://0.0.0.0:61615"         #监听端口,注意该端口不得出现在步骤c中,节点2为tcp://0.0.0.0:61614,节点3为tcp://0.0.0.0:61613
                 zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"     #zookeeper节点地址
                 directory="${activemq.data}/leveldb"
                 hostname="192.168.2.184"      #本机地址
                 zkPath="/home/activemq_cluster/level-stores"/>  #该目录必须可用
        </persistenceAdapter>

c.找到 <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>,将父节点中的内容替换为

 <transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->

           <!--节点2为61617,节点3为61618 -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616? tcp://0.0.0.0:61613maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <!--
            <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            -->
        </transportConnectors>

vi  activemq1/conf/jetty.xml
 找到<property name="port" value="8161"/>,将其以及上一行替换为
<property name="host" value="192.168.2.184"/> <!--本机地址-->
        <property name="port" value="8161"/> <!--节点2为8162,节点2为8163-->

其他两个节点的配置,与上面内容相同,需要改变的地方已做说明

3.先启动zookeeper集群,后启动activemq集群

sh /home/zookeeper_cluster/zookeeper2/bin/zkServer.sh start

sh /home/zookeeper_cluster/zookeeper3/bin/zkServer.sh start

sh /home/zookeeper_cluster/zookeeper4/bin/zkServer.sh start

 /home/activemq_cluster/activemq1/bin/activemq start

 /home/activemq_cluster/activemq2/bin/activemq start

 /home/activemq_cluster/activemq3/bin/activemq start

4.查看activemq的启动日志

cat /home/activemq_cluster/activemq1/data/activemq.log

 INFO  | Master started: tcp://192.168.2.184:61615 | org.apache.activemq.leveldb.replicated.MasterElector | ActiveMQ BrokerService[activemq_cluster] Task-2
2020-01-09 20:25:30,964 | INFO  | Slave has connected: f7ff5156-277c-4d73-9546-aa1481610c75 | org.apache.activemq.leveldb.replicated.MasterLevelDBStore | hawtdispatch-DEFAULT-2
2020-01-09 20:25:31,109 | INFO  | Slave has now caught up: f7ff5156-277c-4d73-9546-aa1481610c75 | org.apache.activemq.leveldb.replicated.MasterLevelDBStore | hawtdispatch-DEFAULT-2

从日志中可以看出节点1已被选为主节点,其他两个节点选为备份节点
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值