RocketMQ4.9.7 Dledger Docker集群部署

645 阅读2分钟

1.说明

RocketMq采用的是Dledger 的部署模式,需要三台机器,三台机器部署三个Nameserver,9个Broker,每3个broker形成一个组,通过选举选出master,当单机宕机后重新自动选举master,不影响业务正常使用。 假设有三台机器,IP分别为:192.168.50.18,192.168.50.245,192.168.50.9

机器部署服务配置文件 
ANameServer
Broker集群
broker-n0.properties
broker-n5.properties
broker-n7.properties
192.168.50.18
BNameServer
Broker集群
broker-n2.properties
broker-n4.properties
broker-n6.properties
192.168.50.245
CNameServer
Broker集群
broker-n1.properties
broker-n3.properties
broker-n8.properties
192.168.50.9

2. 配置文件处理

image.png

配置文件中需要修改的是IP,根据机器分布自行修改对应IP,建议使用统一替换。

需要更改的是brokerIP1、namesrvAddr、dLegerPeers中的IP。 配置文件移动

mkdir -p /home/rocketmq/config && cp -r  /home/HA/rocketmq/conf/*  /home/rocketmq/config/

3.NameServer安装

A、B、C三台机器执行如下命令:

docker run -d \  
--restart=always \  
--name rmqnamesrv \  
--privileged=true \  
-p 10111:9876 \  
-v /etc/localtime:/etc/localtime \  
-v /home/rocketmq/logs:/home/rocketmq/logs \  
-v /home/rocketmq/store:/home/rocketmq/store \  
-e "MAX_POSSIBLE_HEAP=100000000" \  
-e "JAVA_OPT_EXT=-server -Xms1g -Xmx1g" \  
apache/rocketmq:4.9.7 \  
sh mqnamesrv

4.Broker安装

三台机器执行如下命令,创建rocketmq用户与用户组

groupadd rocketmq  && useradd -g rocketmq rocketmq && groupmod -g 3000 rocketmq && usermod -u 3000 rocketmq

创建rocketmq工作目录

for ((i=0; i<=8; i++))  
do  
mkdir -p /home/rocketmq/broker-n${i}/logs  
mkdir -p /home/rocketmq/broker-n${i}/store  
done

文件给rocketmq权限

chown -R rocketmq:rocketmq /home/rocketmq

A(50.18)机器需要启动3个容器,使用的配置文件分别为n0、n5、n7,则对应命令如下:

cd /home/HA/rocketmq/shell/ && sh install-n0.sh && sh install-n5.sh && sh install-n7.sh

B(50.245)机器需要启动3个容器,使用的配置文件分别为n2、n4、n6,则对应命令如下:

cd /home/HA/rocketmq/shell && sh install-n2.sh && sh install-n4.sh && sh install-n6.sh

C(50.9)机器需要启动3个容器,使用的配置文件分别为n1、n3、n8,则对应命令如下:

cd /home/HA/rocketmq/shell && sh install-n1.sh && sh install-n3.sh && sh install-n8.sh

5.rocketmq-console

修改为真实Ip,执行如下命令

docker run -d \  
--name rmqconsole \  
-v /etc/localtime:/etc/localtime:ro \  
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.50.18:10111;192.168.50.245:10111;192.168.50.9:10111 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \  
-p 18080:8080 -t styletang/rocketmq-console-ng

访问ip:18080 进入console页面

最终安装完成后,在console可以看到

image.png

6. 配置文件跟脚本文件

阿里云盘链接地址