Rocketmq在單節點情況下新增從節點
在docker-compose部署rocketmq單節點的基礎上,新增一個從節點
一,修改docker-compose配置文件
原docker-compose文件
version: '3.5'
services:rmqnamesrv:image: foxiswho/rocketmq:server-4.5.2container_name: rmqnamesrvports:- 9876:9876volumes:- /my/rocketmq/logs:/opt/logs- /my/rocketmq/store:/opt/storenetworks:rmq:aliases:- rmqnamesrvrmqbroker:image: foxiswho/rocketmq:broker-4.5.2container_name: rmqbrokerports:- 10909:10909- 10911:10911volumes:- /my/rocketmq/broker-logs:/root/logs/rocketmqlogs- /my/rocketmq/broker-store:/opt/store- /my/config/rocketmq/broker.conf:/etc/rocketmq/broker.confenvironment:NAMESRV_ADDR: "rmqnamesrv:9876"JAVA_OPTS: " -Duser.home=/opt"JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"command: mqbroker -c /etc/rocketmq/broker.confdepends_on:- rmqnamesrvnetworks:rmq:aliases:- rmqbrokerrmqconsole:image: styletang/rocketmq-console-ngcontainer_name: rmqconsoleports:- 8087:8080environment:JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"depends_on:- rmqnamesrvnetworks:rmq:aliases:- rmqconsolenetworks:rmq:name: rmqdriver: bridge
新增一個broker從節點配置
version: '3.5'
services:rmqnamesrv:image: foxiswho/rocketmq:server-4.5.2container_name: rmqnamesrvports:- 9876:9876volumes:- /my/rocketmq/logs:/opt/logs- /my/rocketmq/store:/opt/storenetworks:rmq:aliases:- rmqnamesrvrmqbroker:image: foxiswho/rocketmq:broker-4.5.2container_name: rmqbrokerports:- 10909:10909- 10911:10911volumes:- /my/rocketmq/broker-logs:/root/logs/rocketmqlogs- /my/rocketmq/broker-store:/opt/store- /my/config/rocketmq/broker.conf:/etc/rocketmq/broker.confenvironment:NAMESRV_ADDR: "rmqnamesrv:9876"JAVA_OPTS: " -Duser.home=/opt"JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"command: mqbroker -c /etc/rocketmq/broker.confdepends_on:- rmqnamesrvnetworks:rmq:aliases:- rmqbrokerrmqbroker-slave:image: foxiswho/rocketmq:broker-4.5.2container_name: rmqbroker-slaveports:- 10910:10909- 10912:10911volumes:- /home/my/rocketmq/broker-slave-logs:/root/logs/rocketmqlogs- /home/my/rocketmq/broker-slave-store:/opt/store- /home/my/config/rocketmq-slave/broker.conf:/etc/rocketmq/broker.confenvironment:NAMESRV_ADDR: "rmqnamesrv:9876"JAVA_OPTS: " -Duser.home=/opt"JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"command: mqbroker -c /etc/rocketmq/broker.confdepends_on:- rmqnamesrvnetworks:rmq:aliases:- rmqbroker-slavermqconsole:image: styletang/rocketmq-console-ngcontainer_name: rmqconsoleports:- 8087:8080environment:JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"depends_on:- rmqnamesrvnetworks:rmq:aliases:- rmqconsolenetworks:rmq:name: rmqdriver: bridge
二,新建目錄并修改配置文件
#新建從節點持久化目錄
mkdir -p /home/my/rocketmq/broker-slave-logs /home/my/rocketmq/broker-slave-store /home/my/config/rocketmq-slave
#復制主節點broker配置文件到從節點目錄并進行相應修改
cp /home/my/config/rocketmq/broker.conf /home/my/config/rocketmq-slave
vi /home/my/config/rocketmq-slave/broker.conf
#從節點配置文件的brokerName和brokerId必須和主節點不同,其中brokerId必須比主節點大
brokerName = broker-b
brokerId = 1
deleteWhen = 04
fileReservedTime = 48
#brokerRole=SLAVE表示該broker節點為從節點
brokerRole = SLAVE
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable = true
# 如果是本地程序調用云主機 mq,這個需要設置成 云主機 IP
brokerIP1=<your ip>
namesrvAddr=<your ip>:9876
三,啟動從節點并在rmqconsole查看是否運行成功
#在docker-compose目錄下運行
docker-compose up -d
#該命令會自動運行文件中尚未運行的容器,不會影響其他容器運行