|
|
|
@ -0,0 +1,190 @@
|
|
|
|
|
**参考文档**
|
|
|
|
|
|
|
|
|
|
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.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)**
|
|
|
|
|
|
|
|
|
|
- **拉取镜像**
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
**13、 访问RMQ控制台**
|
|
|
|
|
|
|
|
|
|
- [**http://10.10.14.14:8080/**](http://10.10.14.14:8080/) **( IP地址改成自己的 )**
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
**14、 查看创建的 RocketMQ**
|
|
|
|
|
|
|
|
|
|

|