首先需要在Linux系统上安装好docker
想要安装单master的RocketMQ,可以参考我的另一篇博文
https://blog.csdn.net/qq_41479635/article/details/131523121?spm=1001.2014.3001.5501
1. 拉取镜像
# rocketmq版本4.3.2
docker pull foxiswho/rocketmq:server-4.3.2
docker pull foxiswho/rocketmq:broker-4.3.2
查看镜像
docker images
2. 创建2个nameserver
#nameserver1
docker create -p 9876:9876 --name rmqserver01 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-v /rmq/rmqserver01/logs:/opt/logs \
-v /rmq/rmqserver01/store:/opt/store \
foxiswho/rocketmq:server-4.3.2
#nameserver2
docker create -p 9877:9876 --name rmqserver02 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-v /rmq/rmqserver02/logs:/opt/logs \
-v /rmq/rmqserver02/store:/opt/store \
foxiswho/rocketmq:server-4.3.2
参数:
-p 端口映射
-e 设置Java一些参数
-v 文件映射,:前面的路径可以自己定义
3. 创建4个broker(2master+2slave)
3.1 创建master broker
创建第一个master broker,创建之前先创建master broker01的配置文件
# 新建这个文件
vim /rmq/rmqbroker01/conf/broker.conf
# 添加内容
# namesrvAddr是前面定义的2个nameserver地址
namesrvAddr=192.168.241.130:9876;192.168.241.130:9877
brokerClusterName=MyBrokerCluster
# broker01中的master
brokerName=broker01
# 0代表master
brokerId=0
# fileReservedTime:过期时间(48小时);deleteWhen:删除时间(4点)
deleteWhen=04
fileReservedTime=48
# broker角色:同步master
brokerRole=SYNC_MASTER
# 刷盘方式:异步刷盘
flushDiskType=ASYNC_FLUSH
# 和主机共享ip
brokerIP1=192.168.241.130
brokerIp2=192.168.241.130
listenPort=10911
创建master broker01
#master broker01
docker create --net host --name rmqbroker01 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /haoke/rmq/rmqbroker01/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /haoke/rmq/rmqbroker01/logs:/opt/logs \
-v /haoke/rmq/rmqbroker01/store:/opt/store \
foxiswho/rocketmq:broker-4.3.2
同理,创建第2个master broker,先新建master broker02配置文件
# 新建这个文件
vim /rmq/rmqbroker02/conf/broker.conf
# 添加内容
namesrvAddr=192.168.241.130:9876;192.168.241.130:9877
brokerClusterName=MyBrokerCluster
# broker02中的master
brokerName=broker02
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
brokerIP1=192.168.241.130
brokerIp2=192.168.241.130
listenPort=10811
创建master broker02
#master broker02
docker create --net host --name rmqbroker02 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /rmq/rmqbroker02/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /rmq/rmqbroker02/logs:/opt/logs \
-v /rmq/rmqbroker02/store:/opt/store \
foxiswho/rocketmq:broker-4.3.2
3.2 创建slave broker(和master broker创建方式相同)
创建第一个slave broker,创建之前先创建slave broker01的配置文件
# 新建这个文件
vim /rmq/rmqbroker03/conf/broker.conf
# 添加内容
namesrvAddr=192.168.241.130:9876;192.168.241.130:9877
brokerClusterName=MyBrokerCluster
# broker01中的slave
brokerName=broker01
# 1代表slave
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
brokerIP1=192.168.241.130
brokerIp2=192.168.241.130
listenPort=10711
创建slave broker01
#slave broker01
docker create --net host --name rmqbroker03 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /rmq/rmqbroker03/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /rmq/rmqbroker03/logs:/opt/logs \
-v /rmq/rmqbroker03/store:/opt/store \
foxiswho/rocketmq:broker-4.3.2
同理,创建第2个slave broker,先新建slave broker02配置文件
# 新建这个文件
vim /rmq/rmqbroker04/conf/broker.conf
# 添加内容
namesrvAddr=192.168.241.130:9876;192.168.241.130:9877
brokerClusterName=MyBrokerCluster
# broker02中的slave
brokerName=broker02
# 1代表slave
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
brokerIP1=192.168.241.130
brokerIp2=192.168.241.130
listenPort=10611
创建slave broker02
#slave broker02
docker create --net host --name rmqbroker04 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-v /rmq/rmqbroker04/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /rmq/rmqbroker04/logs:/opt/logs \
-v /rmq/rmqbroker04/store:/opt/store \
foxiswho/rocketmq:broker-4.3.2
3. 启动容器
# 启动
docker start rmqserver01 rmqserver02
docker start rmqbroker01 rmqbroker02 rmqbroker03 rmqbroker04
# 查看
docker ps
安装完成