re查询镜像
1、docker search rocketmq
查找mq 使用最多的版本 stars 

拉取镜像
2、docker pull rocketmqinc/rocketmq 【看网上当时用此版本的人较多】
docker pull foxiswho/rocketmq:4.7.0 
创建namesrv数据存储路径
mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store
构建namesrv容器
-Duser.timezone=’Asia/Shangha
docker run -d --restart=always --name mqnamesrv -p 9876:9876 -v /docker/rocketmq/data/namesrv/logs:/root/logs -v /docker/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000 -Duser.timezone='Asia/Shanghai'" foxiswho/rocketmq:4.7.0 sh mqnamesrv

创建broker数据存储路径
mkdir -p /docker/rocketmq/data/broker/logs /docker/rocketmq/data/broker/store /docker/rocketmq/conf
vi /docker/rocketmq/conf/broker.conf
#所属集群名称,如果节点较多可以配置多个brokerClusterName = cluster#broker名称,master和slave使用相同的名称,表明他们的主从关系brokerName = broker-a#0表示Master,大于0表示不同的slavebrokerId = 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 = ASYNC_FLUSH# 设置broker节点所在服务器的ip地址 如果不设置,就是内网ipbrokerIP1 = 172.29.253.146brokerIP2 = 172.29.253.146#nameServer地址,分号分割namesrvAddr = 172.29.253.146:9876# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,falseautoCreateTopicEnable = true# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup = true#Broker 对外服务的监听端口listenPort=10911
二
#所属集群名称,如果节点较多可以配置多个brokerClusterName = cluster#broker名称,master和slave使用相同的名称,表明他们的主从关系brokerName = broker-a#0表示Master,大于0表示不同的slavebrokerId = 1#表示几点做消息删除动作,默认是凌晨4点deleteWhen = 04#在磁盘上保留消息的时长,单位是小时fileReservedTime = 48#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;brokerRole = SLAVE#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;flushDiskType = ASYNC_FLUSH# 设置broker节点所在服务器的ip地址 如果不设置,就是内网ipbrokerIP1 = 172.29.255.209#nameServer地址,分号分割namesrvAddr = 172.29.253.146:9876# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,falseautoCreateTopicEnable = true# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup = true#Broker 对外服务的监听端口listenPort=10911
构建broker容器
docker run -d --restart=always --name mqbroker -p 10911:10911 -p 10909:10909 -p 10912:10912 -v /docker/rocketmq/data/broker/logs:/root/logs -v /docker/rocketmq/data/broker/store:/root/store -v /docker/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=172.29.248.162:9876;" -e "MAX_POSSIBLE_HEAP=200000000 -Duser.timezone='Asia/Shanghai'" foxiswho/rocketmq:4.7.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

构建rockermq-console容器
docker run -d --restart=always --name mqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.19.54.62:9876;172.19.53.163:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -p 9999:8080 styletang/rocketmq-console-ng

https://blog.csdn.net/ming19951224/article/details/109063041
单节点
配置简单,同步刷盘消息不会丢失。
缺点:主节点挂掉 业务停止
多master
性能高,配置简单,单个 Master 宕机或重启维护对应用无影响
缺点: master宕机后 消息在人工干预前 消息无法消费
双主 双从 (异步复制)
- 优点: 性能高与 同步复制
- 缺点: master宕机后,消息未及时同步 消息可能会丢失
双主 双从 (同步复制)
优点:可用性高
缺点: 性能低于 异步复制10%
Dledger 集群模式
新的多副本架构首先需要解决自动故障转移的问题,本质上来说问题关键点在于 Broker 如何自动推选主节点。
