一、拉取官方镜像:
docker pull apache/rocketmq:latest #最新版就是5.1.4
docker pull apacherocketmq/rocketmq-dashboard:latest #console控制台方便查看
二、Name Server搭建
1、创建挂载的目录
mkdir -p /data/docker/rocketmq/{mqnamesrv,broker}/{store,logs}
2、创建容器
docker run -d --name rocketmq-namesrv -p 9876:9876 -v /data/docker/rocketmq/mqnamesrv/logs:/root/logs -v /data/docker/rocketmq/mqnamesrv/store:/root/store apache/rocketmq sh mqnamesrv
3、查看运行状态:
二、Broker搭建
1、使用Docker命令复制Name Server服务中得Broker配置。
docker cp 容器ID:容器内文件位置 本地位置
sudo docker cp fb3cef596a9e:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf /data/docker/rocketmq/broker/broker.conf
2、修改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 = SYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = SYNC_FLUSH
# 设置broker节点所在服务器的ip地址(**这个非常重要,主从模式下,从节点会根据主节点的brokerIP2来同步数据,如果不配置,主从无法同步,brokerIP1设置为自己外网能访问的ip,服务器双网卡情况下必须配置,比如阿里云这种,主节点需要配置ip1和ip2,从节点只需要配置ip1即可)
brokerIP1 = 172.16.2.26
#nameServer地址,分号分割
namesrvAddr= 172.16.2.26:9876
#Broker 对外服务的监听端口,
listenPort = 10911
#是否允许Broker自动创建Topic
autoCreateTopicEnable = true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup = true
#linux开启epoll
useEpollNativeSelector = true
#数据存放的根目录
#storePathRootDir = /root/store/path
#commit log保存目录
#storePathCommitLog = /root/store/path/commitlog
#消费队列存储路径存储路径
#storePathConsumerQueue = /root/store/path/consumequeue
slaveReadEnable = true
3、创建容器
默认内存大小
docker run -d --name rocketmq-broker -p 10909:10909 -p 10911:10911 -v /data/docker/rocketmq/broker/logs:/root/logs -v /data/docker/rocketmq/broker/store:/root/store -v /data/docker/rocketmq/broker/broker.conf:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf apache/rocketmq sh mqbroker -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf
指定内存大小
docker run -d --name rocketmq-broker -p 10909:10909 -p 10911:10911 -v /data/docker/rocketmq/broker/logs:/root/logs -v /data/docker/rocketmq/broker/store:/root/store -v /data/docker/rocketmq/broker/broker.conf:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf -e "JAVA_OPT_EXT=-server -Xms1g -Xmx1g -Xmn512m" apache/rocketmq sh mqbroker -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf
4、查看运行状态
查看logs
三、console控制台搭建
1、创建容器
docker run -d --name rocketmq-console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.2.26:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8000:8080 apacherocketmq/rocketmq-dashboard
评论区