两台服务器创建日志和存储目录
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