1.nameServer部分
1. 1 拉取最新MQ镜像
docker pull rocketmqinc/rocketmq
1.2 创建宿主机挂载目录
mkdir -p /Users/xxx/rocketmq/nameserver/logs /Users/xxx/rocketmq/nameserver/store
1.3启动nameServer
docker run -d --restart=always --name rmqnamesrv -p 9876:9876 -v /Users/xxx/rocketmq/nameserver/logs:/root/logs -v /Users/xxx/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
2.broker部分
2.1 创建宿主机目录
mkdir -p /Users/xxx/rocketmq/broker/logs /Users/xxx/rocketmq/broker/store /Users/xxx/rocketmq/broker/conf
2.2 修改broker 配置文件(上一步创建的【/Users/xxx/rocketmq/broker/conf】 目录下创建 broker.conf) , 这里的ip 注意是宿主机ip
# 所属集群名字
brokerClusterName=DefaultCluster
# broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a
# 0 表示 Master,> 0 表示 Slave
brokerId=0
# nameServer地址,分号分割
namesrvAddr=192.168.1.10:9876
# 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
producer.setVipChannelEnabled=false
brokerIP1=192.168.1.10
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=true
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# Broker 对外服务的监听端口
listenPort=10911
# 删除文件时间点,默认凌晨4点
deleteWhen=04
# 文件保留时间,默认48小时
fileReservedTime=120
# commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
# ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 限制的消息大小
maxMessageSize=65536
# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
2.3 启动broker
docker run -d --restart=always --name rmqbroker01 --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 -v /Users/pan/rocketmq/broker/logs:/root/logs -v /Users/xxx/rocketmq/broker/store:/root/store -v /Users/xxx/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
3. 可视化监控
3.1 拉取最新镜像
docker pull pangliang/rocketmq-console-ng
3.2 启动 ( http://127.0.0.1:9999/)
docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.1.10:9876 -Dcom.rocketmqsendMessageWithVIPChannel=false" -p 9999:8080 pangliang/rocketmq-console-ng