RocketMQ安装与使用:https://blog.csdn.net/a526001650a/article/details/107978792
一、创建2个Master节点(2个namesrv+2个broker):
1.创建/启动第1个Master节点:
(1)创建namesrv1容器,端口为10001:
[root@localhost ~]# docker run -di -p 10001:10001 --name=rmq_namesrv1 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
rocketmqinc/rocketmq:latest
(2)创建并配置rmq_broker1容器:
<1>创建rmq_broker1容器:
[root@localhost ~]# docker run -di --net host --name=rmq_broker1 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
rocketmqinc/rocketmq:latest
<2>进入rmq_broker1容器命令行:
[root@localhost ~]# docker exec -it rmq_broker1 /bin/bash
<3>配置rmq_broker1容器集群信息(cd到/opt/rocketmq-4.4.0/conf目录):
[root@a1ac00ab3de1 conf]# vi broker.conf
修改如下内容:
namesrvAddr=192.168.233.128:10001;192.168.233.128:10002 #2个master namesrv地址
brokerClusterName = YYHCluster #自定义一个名称
brokerName = broker1 #自定义一个名称
brokerId = 0 #默认不变
deleteWhen = 04 #默认不变
fileReservedTime = 48 #默认不变
brokerRole = ASYNC_MASTER #默认不变
flushDiskType = ASYNC_FLUSH #默认不变
brokerIP1=192.168.233.128 #配置broker节点IP
brokerIp2=192.168.233.128 #配置broker节点IP
listenPort=10901 #当前rmq_broker1端口
2.创建/启动第2个Master节点:
(1)创建namesrv2容器,端口为10002:
[root@localhost ~]# docker run -di -p 10002:10002 --name=rmq_namesrv2 \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
-e "JAVA_OPTS=-Duser.home=/opt" \
rocketmqinc/rocketmq:latest
(2)创建并配置rmq_broker2容器:
<1>创建rmq_broker2容器:
[root@localhost ~]# docker run -di --net host --name=rmq_broker2 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
rocketmqinc/rocketmq:latest
<2>进入rmq_broker2容器命令行:
[root@localhost ~]# docker exec -it rmq_broker2 /bin/bash
<3>配置rmq_broker2容器集群信息(cd到/opt/rocketmq-4.4.0/conf目录):
[root@a1ac00ab3de1 conf]# vi broker.conf
修改如下内容:
namesrvAddr=192.168.233.128:10001;192.168.233.128:10002 #2个master namesrv地址
brokerClusterName = YYHCluster #自定义一个名称
brokerName = broker2 #自定义一个名称
brokerId = 0 #默认不变
deleteWhen = 04 #默认不变
fileReservedTime = 48 #默认不变
brokerRole = ASYNC_MASTER #默认不变
flushDiskType = ASYNC_FLUSH #默认不变
brokerIP1=192.168.233.128 #配置broker节点IP
brokerIp2=192.168.233.128 #配置broker节点IP
listenPort=10902 #当前rmq_broker2端口
二、创建2个Slave broker节点(2个broker):
1.创建/启动第1个slave broker节点:
<1>创建rmq_broker3容器:
[root@localhost ~]# docker run -di --net host --name=rmq_broker3 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
rocketmqinc/rocketmq:latest
<2>进入rmq_broker3容器命令行:
[root@localhost ~]# docker exec -it rmq_broker3 /bin/bash
<3>配置rmq_broker3容器集群信息(cd到/opt/rocketmq-4.4.0/conf目录):
[root@a1ac00ab3de1 conf]# vi broker.conf
修改如下内容:
namesrvAddr=192.168.233.128:10001;192.168.233.128:10002 #2个master namesrv地址
brokerClusterName = YYHCluster #自定义一个名称
brokerName = broker3 #自定义一个名称
brokerId = 1 #和上面不一样
deleteWhen = 04 #默认不变
fileReservedTime = 48 #默认不变
brokerRole = SLAVE #标识为slave节点
flushDiskType = ASYNC_FLUSH #默认不变
brokerIP1=192.168.233.128 #配置broker节点IP
brokerIp2=192.168.233.128 #配置broker节点IP
listenPort=10903 #当前rmq_broker3端口
2.创建/启动第2个slave broker节点:
<1>创建rmq_broker4容器:
[root@localhost ~]# docker run -di --net host --name=rmq_broker4 \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
rocketmqinc/rocketmq:latest
<2>进入rmq_broker4容器命令行:
[root@localhost ~]# docker exec -it rmq_broker4 /bin/bash
<3>配置rmq_broker4容器集群信息(cd到/opt/rocketmq-4.4.0/conf目录):
[root@a1ac00ab3de1 conf]# vi broker.conf
修改如下内容:
namesrvAddr=192.168.233.128:10001;192.168.233.128:10002 #2个master namesrv地址
brokerClusterName = YYHCluster #自定义一个名称
brokerName = broker4 #自定义一个名称
brokerId = 1 #和上面不一样
deleteWhen = 04 #默认不变
fileReservedTime = 48 #默认不变
brokerRole = SLAVE #标识为slave节点
flushDiskType = ASYNC_FLUSH #默认不变
brokerIP1=192.168.233.128 #配置broker节点IP
brokerIp2=192.168.233.128 #配置broker节点IP
listenPort=10904 #当前rmq_broker4端口
三、重启所有容器:
1.停止所有容器:
[root@localhost ~]# docker stop rmq_namesrv1 rmq_namesrv2 rmq_broker1 rmq_broker2 rmq_broker3 rmq_broker4
2.启动所有容器:
(1)启动rmq_namesrv1和rmq_namesrv2:
[root@localhost ~]# docker start rmq_namesrv1 rmq_namesrv2
(2)启动rmq_namesrv1和rmq_namesrv2:
[root@localhost ~]# docker start rmq_broker1 rmq_broker2 rmq_broker3 rmq_broker4