RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:
1、支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型
2、在一个队列中可靠的先进先出(FIFO)和严格的顺序传递
3、支持拉(pull)和推(push)两种消息模式
4、单一队列百万消息的堆积能力
5、支持多种消息协议,如 JMS、MQTT 等
6、分布式高可用的部署架构,满足至少一次消息传递语义
7、提供 docker 镜像用于隔离测试和云集群部署
8、提供配置、指标和监控等功能丰富的 Dashboard

1、创建目录

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=true

3、创建编辑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=true

4、创建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=true \

5、测试容器之间网络是否互通

docker exec -ti name_server bash
ping rocketmq_broker
#或者
docker exec -ti rocketmq_broker bash
ping name_server

6、创建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-ng

7、docker ps -a查看容器运行状态

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐