当前位置: 代码迷 >> 综合 >> rocketmq Docker 部署
  详细解决方案

rocketmq Docker 部署

热度:135   发布时间:2023-09-14 09:07:10.0

1.创建 mq 配置文件 broker.conf

文件放置到 /opt/rocketmq/conf ,配置如下:

brokerName = broker-a  
brokerId = 0  
deleteWhen = 04  
fileReservedTime = 48  
brokerRole = ASYNC_MASTER  
flushDiskType = ASYNC_FLUSH  
# 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IP
#brokerIP1=10.10.101.80 

2.创建如下文件夹:/opt/rocketmq/logs,/opt/rocketmq/store 最后创建 docker-compose.yml 文件

配置如下:

version: '2'
services:namesrv:image: rocketmqinc/rocketmqcontainer_name: rmqnamesrvports:- 9876:9876volumes:- /opt/rocketmq/logs:/home/rocketmq/logs- /opt/rocketmq/store:/home/rocketmq/storecommand: sh mqnamesrvbroker:image: rocketmqinc/rocketmqcontainer_name: rmqbrokerports:- 10909:10909- 10911:10911- 10912:10912volumes:- /opt/rocketmq/logs:/home/rocketmq/logs- /opt/rocketmq/store:/home/rocketmq/store- /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf#command: sh mqbroker -n namesrv:9876command: sh mqbroker -n namesrv:9876 -c ../conf/broker.confdepends_on:- namesrvenvironment:- JAVA_HOME=/usr/lib/jvm/jreconsole:image: styletang/rocketmq-console-ngcontainer_name: rocketmq-console-ngports:- 8087:8080depends_on:- namesrvenvironment:- JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876 - Dcom.rocketmq.sendMessageWithVIPChannel=false

3.注意点

这里需要注意 rocketmq broker 与 rokcetmq-console 都需要与 rokcetmq nameserver 连接,需要知道 nameserver ip。使用 docker-compose 之后,上面三个 docker 容器将会一起编排,可以直接使用容器名代替容器 ip,如这里 nameserver 容器名 rmqnamesrv。

配置完成之后,运行 docker-compose up -d 启动三个容器,启动成功后,访问 ip:8087,查看 mq 外部控制台,如果可以看到以下信息,rocketmq 服务启动成功。