0


Rocketmq-5.3.0和对应dashboard的最新版本Docker镜像,本人亲自制作,部署十分方便,奉献给大家

一、Rocketmq 最新版本5.3.0,采用docker镜像安装方式

在这里插入图片描述

二、官方rocketmq镜像对内存等参数配置非常不灵活便利

为了快速、灵活部署rocketmq,以及能方便对其内存等参数进行设置,特意制作了关于它的docker镜像。

三、镜像获取

最新rocketmq-5.3.0及其dashboard镜像,已上传阿里云镜像仓库

在这里插入图片描述在这里插入图片描述

采用以下命令可以直接拉取

  1. docker pull registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq:sinhy-5.3.0
  2. docker pull registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq-dashboard:sinhy-5.3.0

拉取后,需要将镜像标签重命名一下

  1. docker tag registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq:sinhy-5.3.0 rocketmq:sinhy-5.3.0
  2. docker tag registry.cn-hangzhou.aliyuncs.com/sinhy/rocketmq-dashboard:sinhy-5.3.0 rocketmq-dashboard:sinhy-5.3.0

四、Rocketmq docker 镜像部署脚本

内存,挂载路径自行根据修改配置,运行起来了,别忘了回来点个赞啊,祝工作开心~

准备工作

  1. JDK需要你自己挂载到一个目录下(1.8及以上,建议17及以上),对应docker里面的jdk目录:**/data/env/jdk**。
  2. 两台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)
  1. listenPort=9876
b. namesrv-b.properties (172.16.10.91)
  1. listenPort=9876

2. broker配置(a,b-s,b,a-s四个配置文件)

公共配置(为了避免重复,将以下4个broker配置的公共部分提前介绍)
  1. # 是否允许Broker自动创建Topic,建议线下开启,线上关闭
  2. autoCreateTopicEnable=false
  3. # 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
  4. autoCreateSubscriptionGroup=false
  5. # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
  6. defaultTopicQueueNums=4
  7. # ConsumeQueue每个文件默认存30W条,根据业务情况调整
  8. mapedFileSizeConsumeQueue=300000
  9. # commitLog每个文件的大小默认1G
  10. mapedFileSizeCommitLog=1073741824
  11. #检测物理文件磁盘空间
  12. diskMaxUsedSpaceRatio=75
  13. #限制消息内容大小,默认为4M
  14. maxMessageSize=65536
  15. #发送消息线程池数量
  16. sendMessageThreadPoolNums=128
  17. #拉消息线程池数量
  18. pullMessageThreadPoolNums=128
  19. #发送消息是否使用可重入锁
  20. useReentrantLockWhenPutMessage=true
  21. # 清理过期请求时,如果请求线程的创建时间到当前系统时间间隔大于 waitTimeMillsInSendQueue(默认 200ms,可以配置)就会清理这个请求, 然后给 Producer 返回一个系统繁忙的状态码
  22. waitTimeMillsInSendQueue=300
broker-a.properties配置 (172.16.10.90)
  1. # 整个broker集群名称,或者说是RocketMq集群的名称
  2. brokerClusterName=SinhyBrokerCluster
  3. # 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
  4. brokerName=broker-a
  5. # 集群中0表示Master,>0表示Slave
  6. brokerId=0
  7. # 删除消息存储过期文件的时间,默认凌晨四点
  8. deleteWhen=04
  9. # 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
  10. fileReservedTime=48
  11. # broker的角色(主节点)
  12. brokerRole=SYNC_MASTER
  13. # 刷盘方式
  14. # -ASYNC_FLUSH 异步刷盘
  15. # -SYNC_FLUSH 同步刷盘
  16. flushDiskType=ASYNC_FLUSH
  17. # nameServer地址,集群用分号分割
  18. namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
  19. # 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
  20. brokerIP1=172.16.10.90
  21. # broker对外服务的监听端口
  22. listenPort=10911
broker-b-s.properties配置 (172.16.10.90)
  1. # 整个broker集群名称,或者说是RocketMq集群的名称
  2. brokerClusterName=SinhyBrokerCluster
  3. # 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
  4. brokerName=broker-b
  5. # 集群中0表示Master,>0表示Slave
  6. brokerId=1
  7. # 删除消息存储过期文件的时间,默认凌晨四点
  8. deleteWhen=04
  9. # 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
  10. fileReservedTime=48
  11. # broker的角色(主节点)
  12. brokerRole=SLAVE
  13. # 刷盘方式
  14. # -ASYNC_FLUSH 异步刷盘
  15. # -SYNC_FLUSH 同步刷盘
  16. flushDiskType=ASYNC_FLUSH
  17. # nameServer地址,集群用分号分割
  18. namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
  19. # 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
  20. brokerIP1=172.16.10.90
  21. # broker对外服务的监听端口
  22. listenPort=10711
broker-b.properties配置 (172.16.10.91)
  1. brokerClusterName=SinhyBrokerCluster
  2. # 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
  3. brokerName=broker-b
  4. # 集群中0表示Master,>0表示Slave
  5. brokerId=0
  6. # 删除消息存储过期文件的时间,默认凌晨四点
  7. deleteWhen=04
  8. # 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
  9. fileReservedTime=48
  10. # broker的角色(主节点)
  11. brokerRole=SYNC_MASTER
  12. # 刷盘方式
  13. # -ASYNC_FLUSH 异步刷盘
  14. # -SYNC_FLUSH 同步刷盘
  15. flushDiskType=ASYNC_FLUSH
  16. # nameServer地址,集群用分号分割
  17. namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
  18. # 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
  19. brokerIP1=172.16.10.91
  20. # broker对外服务的监听端口
  21. listenPort=10911
broker-a-s.properties配置 (172.16.10.91)
  1. # 整个broker集群名称,或者说是RocketMq集群的名称
  2. brokerClusterName=SinhyBrokerCluster
  3. # 指定master-slave集群的名称,一个rocketMq集群可以包含多个master-slave集群
  4. brokerName=broker-a
  5. # 集群中0表示Master,>0表示Slave
  6. brokerId=1
  7. # 删除消息存储过期文件的时间,默认凌晨四点
  8. deleteWhen=04
  9. # 指定未发生更新的消息存储文件的保留时间为默认48消失,过期将被删除
  10. fileReservedTime=48
  11. # broker的角色(主节点)
  12. brokerRole=SLAVE
  13. # 刷盘方式
  14. # -ASYNC_FLUSH 异步刷盘
  15. # -SYNC_FLUSH 同步刷盘
  16. flushDiskType=ASYNC_FLUSH
  17. # nameServer地址,集群用分号分割
  18. namesrvAddr=172.16.10.90:9876;172.16.10.91:9876
  19. # 指定broker的IP,需要根据每台机器进行修改,官方介绍可为空,系统默认自动识别,但多网卡时IP地址读取可能出错。
  20. brokerIP1=172.16.10.91
  21. # broker对外服务的监听端口
  22. listenPort=10711

3. Docker部署脚本

namesrv-a (172.16.10.90)
  1. # 创建namesrv日志目录mkdir-p /data/docker-containers/rocketmq/namesrv/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/namesrv/gclogs
  3. # 创建namesrv数据存储路径mkdir-p /data/docker-containers/rocketmq/namesrv/store
  4. # 创建namesrv配置目录mkdir-p /data/docker-containers/rocketmq/namesrv/conf
  5. # 创建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 \-p9876: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="1024m"\-emaxDirectMemorySize="512m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/namesrv-start.sh -c /data/rocketmq/conf/2m-2s-sync/namesrv-a.properties
namesrv-b (172.16.10.91)
  1. # 创建namesrv日志目录mkdir-p /data/docker-containers/rocketmq/namesrv/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/namesrv/gclogs
  3. # 创建namesrv数据存储路径mkdir-p /data/docker-containers/rocketmq/namesrv/store
  4. # 创建namesrv配置目录mkdir-p /data/docker-containers/rocketmq/namesrv/conf
  5. docker run -d\--restart=always \--privileged=true \-p9876: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="1024m"\-emaxDirectMemorySize="512m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/namesrv-start.sh -c /data/rocketmq/conf/2m-2s-sync/namesrv-b.properties
broker-a (172.16.10.90)
  1. # 创建broker日志目录mkdir-p /data/docker-containers/rocketmq/broker/a/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/broker/a/gclogs
  3. # 创建broker数据存储路径mkdir-p /data/docker-containers/rocketmq/broker/a/store
  4. # 创建broker各节点的配置文件路径mkdir-p /data/docker-containers/rocketmq/broker/a/conf
  5. # 创建broker-a节点容器docker run -d\--restart=always \--privileged=true \-p10911: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="2048m"\-emaxDirectMemorySize="1024m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-a.properties
broker-b-s (172.16.10.90)
  1. # 创建broker日志目录mkdir-p /data/docker-containers/rocketmq/broker/b-s/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/broker/b-s/gclogs
  3. # 创建broker数据存储路径mkdir-p /data/docker-containers/rocketmq/broker/b-s/store
  4. # 创建broker各节点的配置文件路径mkdir-p /data/docker-containers/rocketmq/broker/conf
  5. # 创建broker-a节点容器(一定要用bash执行sh脚本,否则遇到[[]]这种命令无法执行)docker run -d\--restart=always \--privileged=true \-p10711: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="2048m"\-emaxDirectMemorySize="1024m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-b-s.properties
broker-b (172.16.10.91)
  1. # 创建broker日志目录mkdir-p /data/docker-containers/rocketmq/broker/b/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/broker/b/gclogs
  3. # 创建broker数据存储路径mkdir-p /data/docker-containers/rocketmq/broker/b/store
  4. # 创建broker各节点的配置文件路径mkdir-p /data/docker-containers/rocketmq/broker/conf
  5. # 创建broker-a节点容器docker run -d\--restart=always \--privileged=true \-p10911: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="2048m"\-emaxDirectMemorySize="1024m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-b.properties
broker-a-s (172.16.10.91)
  1. # 创建broker日志目录mkdir-p /data/docker-containers/rocketmq/broker/a-s/logs
  2. # 创建namesrv gc日志目录mkdir-p /data/docker-containers/rocketmq/broker/a-s/gclogs
  3. # 创建broker数据存储路径mkdir-p /data/docker-containers/rocketmq/broker/a-s/store
  4. # 创建broker各节点的配置文件路径mkdir-p /data/docker-containers/rocketmq/broker/conf
  5. # 创建broker-a节点容器docker run -d\--restart=always \--privileged=true \-p10711: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 \--networkhost\-exss="512k"\-exms="512m"\-exmx="2048m"\-emaxDirectMemorySize="1024m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_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"\
  6. rocketmq:sinhy-5.3.0 \nohupbash ./bin/broker-start.sh -c /data/rocketmq/conf/2m-2s-sync/broker-a-s.properties

最后是简单的rocketmq-dashboard的docker镜像部署

  1. # 创建dashboard日志目录mkdir-p /data/docker-containers/rocketmq/dashboard/logs
  2. # 创建dashboard gc日志目录mkdir-p /data/docker-containers/rocketmq/dashboard/gclogs
  3. # 创建dashboard 临时数据存储路径mkdir-p /data/docker-containers/rocketmq/dashboard/tmp
  4. # 创建broker-a节点容器docker run -d\--restart=always \--privileged=true \-p19876: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 \--networkhost\-exss="512k"\-exms="128m"\-exmx="512m"\-emaxDirectMemorySize="128m"\-emetaspaceSize="64m"\-emaxMetaspaceSize="256m"\-eJAVA_OPT_EXT=""\-eSERVER_PORT=19876\-eNAMESRV_ADDR="172.16.10.90:9876,172.16.10.91:9876"\
  5. rocketmq-dashboard:sinhy-5.3.0

五、启动成功界面

在这里插入图片描述在这里插入图片描述在这里插入图片描述

六、总结

好了,以上就是关于rocketmq最新版本5.3.0的docker镜像安装部署介绍(基于【2m-2s-sync】集群模式),喜欢的朋友,记得点赞,收藏,关注我,后期会有更多经典docker镜像介绍!!


本文转载自: https://blog.csdn.net/lilinhai548/article/details/140747833
版权归原作者 龙殿殿主 所有, 如有侵权,请联系我们删除。

“Rocketmq-5.3.0和对应dashboard的最新版本Docker镜像,本人亲自制作,部署十分方便,奉献给大家”的评论:

还没有评论