main
黄海 2 months ago
parent 2a8a5b25d9
commit 2318ccace5

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

@ -1,76 +1,193 @@
**参考文档**
https://blog.csdn.net/qq_45297578/article/details/128723168
https://blog.csdn.net/apple_74262176/article/details/141886930
`foxiswho/rockermq`镜像$stars$最多,所以拉取运行该镜像。创建$NameServer$容器并启动,端口使用 $RecketMQ$ 默认端口
**1、拉取 $RocketMQ$ 镜像**
```sh
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/foxiswho/rocketmq:server
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/foxiswho/rocketmq:server docker.io/foxiswho/rocketmq:server
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
```
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/foxiswho/rocketmq:broker
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/foxiswho/rocketmq:broker docker.io/foxiswho/rocketmq:broker
**2、 创建容器共享网络 $rocketmq$**
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zevenfang/rocketmq-console-ng:latest
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zevenfang/rocketmq-console-ng:latest docker.io/zevenfang/rocketmq-console-ng:latest
```sh
docker network create rocketmq
```
编辑配置文件
**3、 部署 $NameServer$ 前提条件**
```sh
mkdir /usr/local/roketmq/conf/ -p
vi /usr/local/roketmq/conf/broker.conf
```
# 创建目录
mkdir -p /data/rocketmq/nameserver/{bin,logs}
内容如下:
# 授权文件
chmod 777 -R /data/rocketmq/nameserver/*
```ini
brokerIP1 = 10.10.14.14
listenPort = 10911
# 创建容器
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.1.0/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 已成功启动。**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091505752.png)
**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
deleteWhen = 04
fileReservedTime = 48
# Broker服务地址 String 内部使用填内网ip如果是需要给外部使用填公网ip
brokerIP1 = 10.10.14.14
# Broker角色
brokerRole = ASYNC_MASTER
# 刷盘方式
flushDiskType = ASYNC_FLUSH
enablePropertyFilter=true
# 在每天的什么时间删除已经超过文件保留时间的 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
```
```sh
# 创建RocketMQ配置文件目录
mkdir /usr/local/roketmq/conf/ -p
# 使用vi编辑器创建broker配置文件
vi /usr/local/roketmq/conf/broker.conf
# 启动RocketMQ的NameServer服务
# -d后台运行容器
# -p 9876:9876映射容器的9876端口到主机的9876端口
# --name rmqserver指定容器名称为rmqserver
docker run -d -p 9876:9876 --name rmqserver docker.io/foxiswho/rocketmq:server
# 启动RocketMQ的Broker服务
# -d后台运行容器
# -p映射broker的两个端口10911和10909
# --link链接到rmqserver容器并将其命名为namesrv
# -e设置环境变量包括nameserver地址和JVM参数
# -v挂载broker配置文件
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqserver:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" -v /usr/local/roketmq/conf/broker.conf:/etc/rocketmq/broker.conf docker.io/foxiswho/rocketmq:broker
# 启动RocketMQ的Web控制台
# -d后台运行容器
# -p 8180:8080映射容器的8080端口到主机的8180端口
# --link链接到rmqserver容器
# -e设置环境变量包括nameserver地址和VIP通道设置
docker run -d --name rmqconsole -p 8180:8080 --link rmqserver:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t docker.io/zevenfang/rocketmq-console-ng:latest
**9、 启动容器 Broker**
```
# 删除容器 Broker
docker rm -f rmqbroker
# 启动容器 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
```
- **启动成功日志如下**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091934903.png)
**10、部署RocketMQ控制台rocketmq-dashboard**
- **拉取镜像**
```sh
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**
```http
http://10.10.14.14:8180/
```
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、 查看启动日志**
```sh
docker logs -f rmq-dashboard
```
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092229565.png)
**13、 访问RMQ控制台**
- [**http://10.10.14.14:8080/**](http://10.10.14.14:8080/) **( IP地址改成自己的 )**
![](D:\dsWork\dsProject\dsAiSupport\Doc\20250522092309206.png)
**14、 查看创建的 RocketMQ**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092331493.png)

@ -1,207 +0,0 @@
**参考文档**
https://blog.csdn.net/apple_74262176/article/details/141886930
**1、拉取 $RocketMQ$ 镜像**
```sh
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$**
```sh
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.1.0/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 已成功启动。**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091505752.png)
**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 = 192.168.100.100
# 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
# 下面是没有注释的版本, 记得修改"namesrvAddr", "brokerIP1"的地址
namesrvAddr = 192.168.100.233:9876
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
brokerIP1 = 192.168.100.233
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
deleteWhen = 04
fileReservedTime = 72
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
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
```
**9、 启动容器 Broker**
```
# 删除容器 Broker
docker rm -f rmqbroker
# 启动容器 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
```
- **启动成功日志如下**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091934903.png)
**10、部署RocketMQ控制台rocketmq-dashboard**
- **拉取镜像**
```sh
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、 查看启动日志**
```sh
docker logs -f rmq-dashboard
```
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092229565.png)
**13、 访问RMQ控制台**
- [**http://10.10.14.14:8080/**](http://10.10.14.14:8080/) **( IP地址改成自己的 )**
![](D:\dsWork\dsProject\dsAiSupport\Doc\20250522092309206.png)
**14、 查看创建的 RocketMQ**
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092331493.png)
Loading…
Cancel
Save