摆设 RocketMQ ( Docker )
[Step 1] :拉取 RocketMQ 镜像
- docker pull apache/rocketmq:5.1.0
复制代码
[Step 2] : 创建容器共享网络 rocketmq
- docker network create rocketmq
复制代码 为什么要创建 docker 共享网络?
- 容器间通讯:创建一个 Docker 网络可以确保同一个网络中的容器可以通过容器名称举行通讯,而不必要知道对方的 IP 地址。这对于必要相互通讯的服务非常紧张,好比 RocketMQ 的多个组件(如 NameServer 和 Broker)。
- 隔离性和安全性:Docker 网络提供了一个隔离的网络环境,不同网络中的容器彼此隔离。这增加了安全性,防止外部或其他不相关的容器访问敏感服务。
- 简化设置:利用 Docker 网络,设置变得更加简单。容器可以通过名称相互访问,无需担心容器重启后 IP 地址发生变化。
[Step 3] : 摆设 NameServer 条件条件
创建目录➡️ 授予文件 ➡️ 创建容器 ➡️ 拷贝启动脚本 ➡️ 删除容器
- # 创建目录
- mkdir -p /data/rocketmq/nameserver/{bin,logs}
- # 授权文件
- chmod 777 -R /data/rocketmq/nameserver/*
- # 创建容器
- docker run -d \
- --privileged=true --name rmqnamesrv \
- apache/rocketmq:5.1.0 sh mqnamesrv
- # 拷贝启动脚本
- docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.1.0/bin/runserver.sh /data/rocketmq/nameserver/bin/
- # 删除容器 NameServer
- docker rm -f rmqnamesrv
复制代码
[Step 4] : 启动容器**<font style="color:rgb(38, 38, 38);">NameServer</font>**
- # 启动容器 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 \
- apache/rocketmq:5.1.0 sh mqnamesrv
- # 部分命令解释 :
- 1. -e "MAX_HEAP_SIZE=256M" 设置最大堆内存和堆内存初始大小
- 2. -e "HEAP_NEWSIZE=128M" 设置新生代内存大小
- # 查看启动日志
- docker logs -f rmqnamesrv
复制代码
[Step 5] : 检察NameServer 启动日志
- 看到 ‘The Name Server boot success…’, 表现NameServer 已乐成启动。
[Step 6] : 摆设 Broker + Proxy
- mkdir -p /data/rocketmq/broker/{store,logs,conf,bin}
- chmod 777 -R /data/rocketmq/broker/*
复制代码
[Step 7] : 创建**broker.cnf**文件
- vim /data/rocketmq/broker/conf/broker.conf
- # nameServer 地址多个用;隔开 默认值null
- # 例:127.0.0.1:6666;127.0.0.1:8888
- namesrvAddr = 192.168.100.100: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
复制代码
[Step 8] : 拷贝启动脚本
- # 启动 Broker 容器
- docker run -d \
- --name rmqbroker --privileged=true \
- apache/rocketmq:5.1.0 sh mqbroker
- # 拷贝脚本文件
- docker cp rmqbroker:/home/rocketmq/rocketmq-5.1.0/bin/runbroker.sh /data/rocketmq/broker/bin
复制代码
[Step 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.1.0/bin/runbroker.sh \
- -e "NAMESRV_ADDR=rmqnamesrv:9876" \
- apache/rocketmq:5.1.0 sh mqbroker --enable-proxy -c /home/rocketmq/broker.conf
- # 查看启动日志
- docker logs -f rmqbroker
复制代码
[Step 10] : 摆设RocketMQ控制台(rocketmq-dashboard)
- docker pull apacherocketmq/rocketmq-dashboard:latest
复制代码
[Step 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" \
- apacherocketmq/rocketmq-dashboard
复制代码
[Step 12] : 检察启动日志
- docker logs -f rmq-dashboard
复制代码
[Step 13] : 访问RMQ控制台
- http://192.168.100.233:8080/** ( IP地址改成本身的 )**
[Step 14] : 检察创建的 RocketMQ
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |