1、创建目录RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:
1、支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型
2、在一个队列中可靠的先进先出(FIFO)和严格的顺序传递
3、支持拉(pull)和推(push)两种消息模式
4、单一队列百万消息的堆积能力
5、支持多种消息协议,如 JMS、MQTT 等
6、分布式高可用的部署架构,满足至少一次消息传递语义
7、提供 docker 镜像用于隔离测试和云集群部署
8、提供配置、指标和监控等功能丰富的 Dashboard
mkdir -p /home/rocketmq/{name_server,broker,console}
mkdir -p /home/rocketmq/name_server/{logs,store}
mkdir -p /home/rocketmq/broker/{logs,store,conf}
#或者
mkdir -p /home/rocketmq/{name_server,broker,console} && mkdir -p /home/rocketmq/name_server/{logs,store} && mkdir -p /home/rocketmq/broker/{logs,store,conf}
2、启动name_server容器
docker run --name name_server --restart=always -p 9876:9876 --privileged=true --network rocketmq -v /home/rocketmq/name_server/logs:/root/logs -v /home/rocketmq/name_server/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" -d rocketmqinc/rocketmq:4.4.0 sh mqnamesrv autoCreateTopicEnable=true3、创建编辑broker.conf配置文件
vim /home/rocketmq/rocketmq_broker/conf/broker.conf
根据实际情况请修改下面的IP
brokerClusterName = DefaultCluster brokerName=broker-a brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH brokerIP1=192.168.1.70 autoCreateTopicEnable=true4、创建rocketmq_broker容器
注意-e "NAMESRV_ADDR=后面需要与前面所创建的 "name_server" 容器名一致。
并附带端口号,格式【容器名:端口】
docker run --name rocketmq_broker --restart=always -p 10911:10911 -p 10909:10909 --privileged=true --network rocketmq -v /home/rocketmq/broker/logs:/root/logs -v /home/rocketmq/broker/store:/root/store -v /home/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=name_server:9876" -e "MAX_POSSIBLE_HEAP=200000000" -c /opt/rocketmq-4.4.0/conf/broker.conf -d rocketmqinc/rocketmq:4.4.0 sh mqbroker autoCreateTopicEnable=true5、测试容器之间网络是否互通
docker exec -ti name_server bash ping rocketmq_broker #或者 docker exec -ti rocketmq_broker bash ping name_server6、创建rocketmq_console容器
注意-e "JAVA_OPTS=-Drocketmq.namesrv.addr=后面需要与前面所创建的 "name_server" 容器名一致。
并附带端口号,格式【容器名:端口】
docker run --name rocketmq_console --restart=always -p 8088:8080 --network rocketmq -v /home/rocketmq/console:/tmp -e "JAVA_OPTS=-Drocketmq.namesrv.addr=name_server:9876" -d styletang/rocketmq-console-ng7、docker ps -a查看容器运行状态



