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镜像介绍!!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。