docker 部署rokcetmq集群 双主双从

该篇博客详细介绍了如何在两台服务器上部署和配置RocketMQ集群,包括创建日志和存储目录,安装nameserver,配置并启动主备broker节点,确保高可用性和数据一致性。同时提到了使用Docker进行容器化部署,并提供了启动命令。
摘要由CSDN通过智能技术生成

两台服务器创建日志和存储目录

mkdir -p /home/data/tools/rocketmq-cluster/logs-a
mkdir -p /home/data/tools/rocketmq-cluster/logs-b
mkdir -p /home/data/tools/rocketmq-cluster/store-a
mkdir -p /home/data/tools/rocketmq-cluster/store-b

两台服务器都安装nameserver

docker run -d -p 9876:9876 --name rmqserver  foxiswho/rocketmq:server-4.5.1

broker-a监听端口10909 暴露10907,10910
broker-b监听端口10915 暴露10913,10916
进入集群目录 cd /home/data/tools/rocketmq-cluster

172.30.72.202服务器A主

rmqbroker-a主节点

1.创建配置文件vim broker-a.conf

brokerClusterName = ICONMALL_CLUSTER
brokerName = broker-a
brokerId = 0
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr = 172.30.72.202:9876;172.30.72.203:9876
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
brokerIP1 = 172.30.72.202
deleteWhen = 04
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master 效率高但如果主宕机会出现部分消息遗漏的情况
#- SYNC_MASTER 同步双写Master 高可用,效率略低
#- SLAVE
brokerRole = ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
#Broker 对外服务的监听端口
listenPort = 10909
autoCreateTopicEnable=true

2.启动rmqbroker-a 注意启动broker时保证2台nameserver都启动了

docker run -d --network=host --name rmqbroker-a  -e "NAMESRV_ADDR=172.30.72.202:9876;172.30.72.203:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms2g -Xmx2g" -v /home/data/tools/rocketmq-cluster/broker-a.conf:/etc/rocketmq/broker.conf -v /home/data/tools/rocketmq-cluster/logs-a:/opt/logs -v /home/data/tools/rocketmq-cluster/store-a:/opt/store -v /etc/localtime:/etc/localtime foxiswho/rocketmq:broker-4.5.1

rmqbroker-b备用节点2

1.创建配置文件vim broker-b.conf

brokerClusterName = ICONMALL_CLUSTER
brokerName = broker-b
brokerId = 1
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr = 172.30.72.202:9876;172.30.72.203:9876
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
brokerIP1 = 172.30.72.202
deleteWhen = 04
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master 效率高但如果主宕机会出现部分消息遗漏的情况
#- SYNC_MASTER 同步双写Master 高可用,效率略低
#- SLAVE
brokerRole = SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
#Broker 对外服务的监听端口
listenPort = 10915
autoCreateTopicEnable=true

2.启动rmqbroker-b

docker run -d --network=host --name rmqbroker-b  -e "NAMESRV_ADDR=172.30.72.202:9876;172.30.72.203:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms2g -Xmx2g" -v /home/data/tools/rocketmq-cluster/broker-b.conf:/etc/rocketmq/broker.conf -v /home/data/tools/rocketmq-cluster/logs-b:/opt/logs -v /home/data/tools/rocketmq-cluster/store-b:/opt/store -v /etc/localtime:/etc/localtime foxiswho/rocketmq:broker-4.5.1

172.30.72.203服务器B主

rmqbroker-a备用节点1

1.创建配置文件vim broker-a.conf

brokerClusterName = ICONMALL_CLUSTER
brokerName = broker-a
brokerId = 1
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr = 172.30.72.202:9876;172.30.72.203:9876
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
brokerIP1 = 172.30.72.203
deleteWhen = 04
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master 效率高但如果主宕机会出现部分消息遗漏的情况
#- SYNC_MASTER 同步双写Master 高可用,效率略低
#- SLAVE
brokerRole = SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
#Broker 对外服务的监听端口
listenPort = 10909
autoCreateTopicEnable=true

2.启动broker-a

docker run -d --network=host --name rmqbroker-a  -e "NAMESRV_ADDR=172.30.72.202:9876;172.30.72.203:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms2g -Xmx2g" -v /home/data/tools/rocketmq-cluster/broker-a.conf:/etc/rocketmq/broker.conf -v /home/data/tools/rocketmq-cluster/logs-a:/opt/logs -v /home/data/tools/rocketmq-cluster/store-a:/opt/store -v /etc/localtime:/etc/localtime foxiswho/rocketmq:broker-4.5.1

rmqbroker-b主节点

1.创建配置文件vim broker-b.conf

brokerClusterName = ICONMALL_CLUSTER
brokerName = broker-b
brokerId = 0
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr = 172.30.72.202:9876;172.30.72.203:9876
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
brokerIP1 = 172.30.72.203
deleteWhen = 04
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master 效率高但如果主宕机会出现部分消息遗漏的情况
#- SYNC_MASTER 同步双写Master 高可用,效率略低
#- SLAVE
brokerRole = ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
#Broker 对外服务的监听端口
listenPort = 10915
autoCreateTopicEnable=true

2.启动broker-b

docker run -d --network=host --name rmqbroker-b  -e "NAMESRV_ADDR=172.30.72.202:9876;172.30.72.203:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms2g -Xmx2g" -v /home/data/tools/rocketmq-cluster/broker-b.conf:/etc/rocketmq/broker.conf -v /home/data/tools/rocketmq-cluster/logs-b:/opt/logs -v /home/data/tools/rocketmq-cluster/store-b:/opt/store -v /etc/localtime:/etc/localtime foxiswho/rocketmq:broker-4.5.1

#控制台安装

docker run -d --name rmqconsole -p 8090:8080 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.30.72.202:9876;172.30.72.203:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t apacherocketmq/rocketmq-console:2.0.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值