macOS 环境下 Docker 配置 RocketMQ(ARM 架构可用)
Contents
一、创建相关文件夹
mkdir -p ~/docker/rocketmq/data
cd ~/docker/rocketmq/data
mkdir logs
mkdir store
mkdir -p broker/conf
mkdir -p broker/logs
mkdir -p broker/store二、创建 docker-compose.yml
vim ~/docker/rocketmq/data/broker/conf/broker.conf
version: "3.5"
services:
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
networks:
rmq:
aliases:
- rmqnamesrv
rmqbroker:
image: foxiswho/rocketmq:broker
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
volumes:
- ./data/broker/logs:/opt/logs
- ./data/broker/store:/opt/store
- ./data/broker/conf/broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker
rmqconsole:
image: apacherocketmq/rocketmq-dashboard
container_name: rmq-dashboard
ports:
- 8180:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876"
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmq-dashboard
networks:
rmq:
name: rmq
driver: bridge三、创建 broker.conf
vim ~/docker/rocketmq/data/broker/conf/broker.conf
brokerClusterName = DefaultCluster
#broker名称,master 和 slave 使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示 Master,大于 0 表示不同的 slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示 Master 和 Slave 之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH 表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功
状态,ASYNC_FLUSH 不需要;
flushDiskType = ASYNC_FLUSH
# 设置 broker 节点所在服务器的 ip 地址、物理 ip,不能用127.0.0.1、localhost、docker内网ip
brokerIP1 = 192.168.123.163
listenPort=10911
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
mapedFileSizeComitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
maxMessageSize=65536m最后目录结构
docker
└── rocketmq
├── data
│ ├── broker
│ │ ├── conf
│ │ │ └── broker.conf
│ │ ├── logs
│ │ └── store
│ ├── logs
│ └── store
└── docker-compose.yml
8 directories, 2 files