You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

参考文档

https://blog.csdn.net/apple_74262176/article/details/141886930

1、拉取 RocketMQ 镜像

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.2
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.2  docker.io/apache/rocketmq:5.3.2

2、 创建容器共享网络 rocketmq

docker network create rocketmq

3、 部署 NameServer 前提条件

# 创建目录
mkdir -p /data/rocketmq/nameserver/{bin,logs}

# 授权文件
chmod 777 -R /data/rocketmq/nameserver/*

# 创建容器
docker run -d \
--privileged=true --name rmqnamesrv \
docker.io/apache/rocketmq:5.3.2 sh mqnamesrv

# 拷贝启动脚本
docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh /data/rocketmq/nameserver/bin/

# 删除容器 NameServer
docker rm -f rmqnamesrv

4、启动容器 NameServer

# 启动容器 NameServer
docker run -d --network rocketmq \
--privileged=true --restart=always \
--name rmqnamesrv -p 9876:9876 \
-v /data/rocketmq/nameserver/logs:/home/rocketmq/logs \
-v /data/rocketmq/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh \
docker.io/apache/rocketmq:5.3.2 sh mqnamesrv

# 部分命令解释 : 
1. -e "MAX_HEAP_SIZE=256M" 设置最大堆内存和堆内存初始大小
2. -e "HEAP_NEWSIZE=128M"  设置新生代内存大小

# 查看启动日志
docker logs -f rmqnamesrv

5、 查看 NameServer 启动日志

  • 看到 The Name Server boot success… 表示NameServer 已成功启动。

6、部署 Broker + Proxy

  • 创建挂载文件夹并授权

    mkdir -p /data/rocketmq/broker/{store,logs,conf,bin}
    chmod 777 -R /data/rocketmq/broker/*
    

7、创建broker.conf文件

vi /data/rocketmq/broker/conf/broker.conf

# nameServer 地址多个用;隔开 默认值null
# 例127.0.0.1:6666;127.0.0.1:8888 
namesrvAddr = 10.10.14.14:9876
# 集群名称
brokerClusterName = DefaultCluster
# 节点名称
brokerName = broker-a
# broker id节点ID 0 表示 master, 其他的正整数表示 slave不能小于0 
brokerId = 0
# Broker服务地址	String	内部使用填内网ip如果是需要给外部使用填公网ip
brokerIP1 = 10.10.14.14
# Broker角色
brokerRole = ASYNC_MASTER
# 刷盘方式
flushDiskType = ASYNC_FLUSH
# 在每天的什么时间删除已经超过文件保留时间的 commit log默认值04
deleteWhen = 04
# 以小时计算的文件保留时间 默认值72小时
fileReservedTime = 72
# 是否允许Broker 自动创建Topic建议线下开启线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组建议线下开启线上关闭
autoCreateSubscriptionGroup=true
# 禁用 tsl
tlsTestModeEnable = false

8、 拷贝启动脚本

# 启动 Broker 容器
docker run -d \
--name rmqbroker --privileged=true \
docker.io/apache/rocketmq:5.3.2 sh mqbroker

# 拷贝脚本文件
docker cp rmqbroker:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh /data/rocketmq/broker/bin

# 删除容器 Broker
docker rm -f rmqbroker

9、 启动容器 Broker

# 启动容器 Broker
docker run -d --network rocketmq \
--restart=always --name rmqbroker --privileged=true \
-p 10911:10911 -p 10909:10909 \
-v /data/rocketmq/broker/logs:/root/logs \
-v /data/rocketmq/broker/store:/root/store \
-v /data/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \
-v /data/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
docker.io/apache/rocketmq:5.3.2 sh mqbroker --enable-proxy -c /home/rocketmq/broker.conf

# 查看启动日志
docker logs -f rmqbroker
  • 启动成功日志如下

10、部署RocketMQ控制台rocketmq-dashboard

  • 拉取镜像

    docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apacherocketmq/rocketmq-dashboard:2.0.1
    docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apacherocketmq/rocketmq-dashboard:2.0.1  docker.io/apacherocketmq/rocketmq-dashboard:2.0.1
    

11、 启动容器 Rocketmq-dashboard

docker run -d \
--restart=always --name rmq-dashboard \
-p 8080:8080 --network rocketmq \
-e "JAVA_OPTS=-Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
 docker.io/apacherocketmq/rocketmq-dashboard:2.0.1

12、 查看启动日志

docker logs -f rmq-dashboard

13、 访问RMQ控制台

14、 查看创建的 RocketMQ

15、 主题维护

cd /usr/local/rocketmq/bin

# 创建主题
./mqadmin updateTopic -n 10.10.14.210:9876 -c DefaultCluster -t HuangHaiTest
# 创建或重置一个名为 TOPIC_NAME 的 topic并将该 broker 组的读写队列数皆设为 4 个。
./mqadmin updateTopic -n 10.10.14.210:9876 -b 10.10.14.210:10911 -t HuangHaiTest -w 4 -r 4

# 查看主题
./mqadmin topicList -n 10.10.14.210:9876 -c

# 删除主题
./mqadmin deleteTopic -n 10.10.14.210:9876 -c DefaultCluster -t HuangHaiTest