提问:ActiveMQ集群总是只有最后一个MQ服务能够启动

问题描述:activemq-zookeeper集群第一次启动成功,activemq全部关闭后,再次启动时,总是只有最后一个activemq启动成功,mq服务启动时,会把上一个mq服务挤下线,日志提示:tcp://0.0.0.0:61616...地址已在使用。

问题未解决

服务器:CentOS7.9.2009

服务器IP:192.168.152.128、192.168.152.129、192.168.152.130

软件版本:activemq5.14.3、zookeeper-3.5.7

安装zookeeper

3台服务器做同样的操作:将zk安装包解压到/opt/colony目录下,得到目录zookeeper-3.5.7,进入conf目录,将文件zoo_sample.cfg改名为zoo.cfg,且修改两处:

# 修改1:数据存储路径

dataDir=/opt/colony/zookeeper-3.5.7/zkData


# 修改2:集群服务器 编号、IP、与Leader通信端口、选举端口

server.1=192.168.152.128:2888:3888
server.2=192.168.152.129:2888:3888
server.3=192.168.152.130:2888:3888

创建目录 /opt/colony/zookeeper-3.5.7/zkData 并在里面创建文件 myid ,输入不同编号,不要有空格,比如3台服务器编号分别为 1、2、3。

3台服务器均执行命令,开放端口:

firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --reload

若启动仍报错,可能需要执行:

setsebool -P httpd_can_network_connect 1

启动3台CentOS的zookeeper服务:

/opt/colony/zookeeper-3.5.7/bin/zkServer.sh start

安装ActiveMQ

每台服务器均安装一个MQ服务。

进入目录

cd /opt/colony

下载安装包

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

解压

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

得到 apache-activemq-5.14.3,进入其 conf 目录,编辑 activemq.xml,修改标签 persistenceAdapter,3台服务器只有“hostname”改为当前服务器IP,其它地方一样。

<persistenceAdapter>  
    <replicatedLevelDB  
      directory="${activemq.data}/leveldb"  
      replicas="3"  
      bind="tcp://0.0.0.0:61616"  
      zkAddress="192.168.152.128:2181,192.168.152.129:2181,192.168.152.130:2181"   
      zkPath="/opt/colony/apache-activemq-5.14.3/leveldb-stores"  
      hostname="当前服务器IP"  
      />
</persistenceAdapter>

分别进入各 activemq 的bin目录,运行 ./activemq start 启动服务

进入zookeeper的bin目录,运行 ./zkCli.sh 启动客户端,运行

ls /opt/colony/apache-activemq-5.14.3/leveldb-stores

可看到三个节点

[00000000000, 00000000001, 00000000002]

获取zookeeper节点值

get /opt/colony/apache-activemq-5.14.3/leveldb-stores/00000000000

看到节点信息

{"id":"localhost","container":null,"address":"tcp://192.168.152.128:45778","position":-1,"weight":1,"elected":"0000000000"}

再次启动服务

以上配置第一次启动成功,但是把所有activemq服务关闭后再启动时,先启动的activemq服务总是在后启动的activemq服务启动后被强制下线,查看日志,提示服务的61616端口被占用,尝试修改服务端口为不同端口,且确保端口未被占用,各个服务又能启动成功,且zk客户端也能查询到。

进入activemq的conf目录,修改文件activemq.xml,将3个activemq的服务端口分别改为61616、61617、61618

<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

结果

改端口启动后,再全部关闭,再启动又出现同样的问题,这到底是怎么回事呢,不知道能不能解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值