Rocketmq-5.3.0和对应dashboard的最新版本Docker镜像,本人亲自制作,部署十分方便,奉献给大家
CSDN 2024-08-31 09:07:02 阅读 60
一、Rocketmq 最新版本5.3.0,采用docker镜像安装方式
二、官方rocketmq镜像对内存等参数配置非常不灵活便利
为了快速、灵活部署rocketmq,以及能方便对其内存等参数进行设置,特意制作了关于它的docker镜像。
三、镜像获取
最新rocketmq-5.3.0及其dashboard镜像,已上传阿里云镜像仓库
采用以下命令可以直接拉取
<code>docker pull registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq:sinhy-5.3.0
docker pull registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq-dashboard:sinhy-5.3.0
拉取后,需要将镜像标签重命名一下
docker tag registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq:sinhy-5.3.0 rocketmq:sinhy-5.3.0
docker tag registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq-dashboard:sinhy-5.3.0 rocketmq-dashboard:sinhy-5.3.0
四、Rocketmq docker 镜像部署脚本
内存,挂载路径自行根据修改配置,运行起来了,别忘了回来点个赞啊,祝工作开心~
准备工作
JDK需要你自己挂载到一个目录下*(1.8及以上,建议17及以上)*,对应docker里面的jdk目录:
/data/env/jdk。两台linux服务器(最低配置4核8g,生产环境建议最低4核16G),设置好内网ip(这里以172.16.10.90和172.16.10.91两台Linux环境做部署介绍),安装好docker等基础环境。
以集群部署【2m-2s-sync】方式介绍
1. namesrv配置
a. namesrv-a.properties (172.16.10.90)
listenPort=9876
b. namesrv-b.properties (172.16.10.91)
listenPort=9876
2. broker配置(a,b-s,b,a-s四个配置文件)
公共配置(为了避免重复,将以下4个broker配置的公共部分提前介绍)
# 是否允许Broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
# ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
# commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=75
#限制消息内容大小,默认为4M
maxMessageSize=65536
#发送消息线程池数量
sendMessageThreadPoolNums=128
#拉消息线程池数量
pullMessageThreadPoolNums=128
#发送消息是否使用可重入锁
useReentrantLockWhenPutMessage=true
# 清理过期请求时,如果请求线程的创建时间到当前系统时间间隔大于 waitTimeMillsInSendQueue(默认 200ms,可以配置)就会清理这个请求, 然后给 Producer 返回一个系统繁忙的状态码
waitTimeMillsInSendQueue=300
broker-a.properties配置 (172.16.10.90)
# 整个broker集群名称,或者说是RocketMq集群的名称
brokerClusterName=SinhyBrokerCluster
# 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
brokerName=broker-a
# 集群中0表示Master,>0表示Slave
brokerId=0
# 删除消息存储过期文件的时间,默认凌晨四点
deleteWhen=04
# 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
fileReservedTime=48
# broker的角色(主节点)
brokerRole=SYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# nameServer地址,集群用分号分割
namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
# 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
brokerIP1=172.16.10.90
# broker对外服务的监听端口
listenPort=10911
broker-b-s.properties配置 (172.16.10.90)
# 整个broker集群名称,或者说是RocketMq集群的名称
brokerClusterName=SinhyBrokerCluster
# 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
brokerName=broker-b
# 集群中0表示Master,>0表示Slave
brokerId=1
# 删除消息存储过期文件的时间,默认凌晨四点
deleteWhen=04
# 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
fileReservedTime=48
# broker的角色(主节点)
brokerRole=SLAVE
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# nameServer地址,集群用分号分割
namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
# 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
brokerIP1=172.16.10.90
# broker对外服务的监听端口
listenPort=10711
broker-b.properties配置 (172.16.10.91)
brokerClusterName=SinhyBrokerCluster
# 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
brokerName=broker-b
# 集群中0表示Master,>0表示Slave
brokerId=0
# 删除消息存储过期文件的时间,默认凌晨四点
deleteWhen=04
# 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
fileReservedTime=48
# broker的角色(主节点)
brokerRole=SYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# nameServer地址,集群用分号分割
namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
# 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
brokerIP1=172.16.10.91
# broker对外服务的监听端口
listenPort=10911
broker-a-s.properties配置 (172.16.10.91)
# 整个broker集群名称,或者说是RocketMq集群的名称
brokerClusterName=SinhyBrokerCluster
# 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
brokerName=broker-a
# 集群中0表示Master,>0表示Slave
brokerId=1
# 删除消息存储过期文件的时间,默认凌晨四点
deleteWhen=04
# 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
fileReservedTime=48
# broker的角色(主节点)
brokerRole=SLAVE
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# nameServer地址,集群用分号分割
namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
# 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
brokerIP1=172.16.10.91
# broker对外服务的监听端口
listenPort=10711
3. Docker部署脚本
namesrv-a (172.16.10.90)
# 创建namesrv日志目录
mkdir -p /data/docker-containers/rocketmq/namesrv/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/namesrv/gclogs
# 创建namesrv数据存储路径
mkdir -p /data/docker-containers/rocketmq/namesrv/store
# 创建namesrv配置目录
mkdir -p /data/docker-containers/rocketmq/namesrv/conf
# 创建namesrv容器
# WARNING: Published ports are discarded when using host network mode
# 提示解释:docker启动时指定--network=host或-net=host,如果还指定了-p或-P,那这个时候就会有此警告,并且通过-p或-P设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。
docker run -d \
--restart=always \
--privileged=true \
-p 9876:9876 \
--volume /data/docker-containers/rocketmq/namesrv/logs:/root/logs \
--volume /data/docker-containers/rocketmq/namesrv/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/namesrv/store:/root/store \
--volume /data/docker-containers/rocketmq/namesrv/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name namesrv-a \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="1024m" \code>
-e maxDirectMemorySize="512m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="--add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/namesrv-start.sh -c /data/rocketmq/conf/2m-2s-sync/namesrv-a.properties
namesrv-b (172.16.10.91)
# 创建namesrv日志目录
mkdir -p /data/docker-containers/rocketmq/namesrv/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/namesrv/gclogs
# 创建namesrv数据存储路径
mkdir -p /data/docker-containers/rocketmq/namesrv/store
# 创建namesrv配置目录
mkdir -p /data/docker-containers/rocketmq/namesrv/conf
docker run -d \
--restart=always \
--privileged=true \
-p 9876:9876 \
--volume /data/docker-containers/rocketmq/namesrv/logs:/root/logs \
--volume /data/docker-containers/rocketmq/namesrv/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/namesrv/store:/root/store \
--volume /data/docker-containers/rocketmq/namesrv/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name namesrv-b \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="1024m" \code>
-e maxDirectMemorySize="512m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="--add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/namesrv-start.sh -c /data/rocketmq/conf/2m-2s-sync/namesrv-b.properties
broker-a (172.16.10.90)
# 创建broker日志目录
mkdir -p /data/docker-containers/rocketmq/broker/a/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/broker/a/gclogs
# 创建broker数据存储路径
mkdir -p /data/docker-containers/rocketmq/broker/a/store
# 创建broker各节点的配置文件路径
mkdir -p /data/docker-containers/rocketmq/broker/a/conf
# 创建broker-a节点容器
docker run -d\
--restart=always \
--privileged=true \
-p 10911:10911 \
--volume /data/docker-containers/rocketmq/broker/a/logs:/root/logs \
--volume /data/docker-containers/rocketmq/broker/a/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/broker/a/store:/root/store \
--volume /data/docker-containers/rocketmq/broker/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name broker-a-10911 \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="2048m" \code>
-e maxDirectMemorySize="1024m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="-XX:+IgnoreUnrecognizedVMOptions --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-a.properties
broker-b-s (172.16.10.90)
# 创建broker日志目录
mkdir -p /data/docker-containers/rocketmq/broker/b-s/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/broker/b-s/gclogs
# 创建broker数据存储路径
mkdir -p /data/docker-containers/rocketmq/broker/b-s/store
# 创建broker各节点的配置文件路径
mkdir -p /data/docker-containers/rocketmq/broker/conf
# 创建broker-a节点容器(一定要用bash执行sh脚本,否则遇到[[]]这种命令无法执行)
docker run -d\
--restart=always \
--privileged=true \
-p 10711:10711 \
--volume /data/docker-containers/rocketmq/broker/b-s/logs:/root/logs \
--volume /data/docker-containers/rocketmq/broker/b-s/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/broker/b-s/store:/root/store \
--volume /data/docker-containers/rocketmq/broker/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name broker-b-s-10711 \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="2048m" \code>
-e maxDirectMemorySize="1024m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="-XX:+IgnoreUnrecognizedVMOptions --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-b-s.properties
broker-b (172.16.10.91)
# 创建broker日志目录
mkdir -p /data/docker-containers/rocketmq/broker/b/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/broker/b/gclogs
# 创建broker数据存储路径
mkdir -p /data/docker-containers/rocketmq/broker/b/store
# 创建broker各节点的配置文件路径
mkdir -p /data/docker-containers/rocketmq/broker/conf
# 创建broker-a节点容器
docker run -d\
--restart=always \
--privileged=true \
-p 10911:10911 \
--volume /data/docker-containers/rocketmq/broker/b/logs:/root/logs \
--volume /data/docker-containers/rocketmq/broker/b/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/broker/b/store:/root/store \
--volume /data/docker-containers/rocketmq/broker/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name broker-b-10911 \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="2048m" \code>
-e maxDirectMemorySize="1024m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="-XX:+IgnoreUnrecognizedVMOptions --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-b.properties
broker-a-s (172.16.10.91)
# 创建broker日志目录
mkdir -p /data/docker-containers/rocketmq/broker/a-s/logs
# 创建namesrv gc日志目录
mkdir -p /data/docker-containers/rocketmq/broker/a-s/gclogs
# 创建broker数据存储路径
mkdir -p /data/docker-containers/rocketmq/broker/a-s/store
# 创建broker各节点的配置文件路径
mkdir -p /data/docker-containers/rocketmq/broker/conf
# 创建broker-a节点容器
docker run -d\
--restart=always \
--privileged=true \
-p 10711:10711 \
--volume /data/docker-containers/rocketmq/broker/a-s/logs:/root/logs \
--volume /data/docker-containers/rocketmq/broker/a-s/gclogs:/data/rocketmq/gclogs \
--volume /data/docker-containers/rocketmq/broker/a-s/store:/root/store \
--volume /data/docker-containers/rocketmq/broker/conf/2m-2s-sync:/data/rocketmq/conf/2m-2s-sync \
--volume /data/env/jdk:/data/env/jdk \
--name broker-a-s-10711 \
--network host \
-e xss="512k" \code>
-e xms="512m" \code>
-e xmx="2048m" \code>
-e maxDirectMemorySize="1024m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="-XX:+IgnoreUnrecognizedVMOptions --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-exports java.base/sun.security.ssl=ALL-UNNAMED" \code>
rocketmq:sinhy-5.3.0 \
nohup bash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-a-s.properties
最后是简单的rocketmq-dashboard的docker镜像部署
# 创建dashboard日志目录
mkdir -p /data/docker-containers/rocketmq/dashboard/logs
# 创建dashboard gc日志目录
mkdir -p /data/docker-containers/rocketmq/dashboard/gclogs
# 创建dashboard 临时数据存储路径
mkdir -p /data/docker-containers/rocketmq/dashboard/tmp
# 创建broker-a节点容器
docker run -d\
--restart=always \
--privileged=true \
-p 19876:19876 \
--volume /data/docker-containers/rocketmq/dashboard/logs:/root/logs \
--volume /data/docker-containers/rocketmq/dashboard/gclogs:/data/rocketmq-dashboard-application/gclogs \
--volume /data/docker-containers/rocketmq/dashboard/tmp:/tmp \
--volume /data/env/jdk:/data/env/jdk \
--name rocketmq-dashboard-5.3.0 \
--network host \
-e xss="512k" \code>
-e xms="128m" \code>
-e xmx="512m" \code>
-e maxDirectMemorySize="128m" \code>
-e metaspaceSize="64m" \code>
-e maxMetaspaceSize="256m" \code>
-e JAVA_OPT_EXT="" \code>
-e SERVER_PORT=19876 \
-e NAMESRV_ADDR="172.16.10.90:9876,172.16.10.91:9876" \code>
rocketmq-dashboard:sinhy-5.3.0
五、启动成功界面
六、总结
好了,以上就是关于rocketmq最新版本5.3.0的docker镜像安装部署介绍(基于【2m-2s-sync】集群模式),喜欢的朋友,记得点赞,收藏,关注我,后期会有更多经典docker镜像介绍!!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。