前提环境: Docker环境 + Harbor仓库(可选)
- 参考官方文档: 《Docker 部署 RocketMQ》
https://rocketmq.apache.org/zh/docs/quickStart/02quickstartWithDocker - 参考官方文档: 《RocketMQ Dashboard》
https://rocketmq.apache.org/zh/docs/deploymentOperations/04Dashboard/
声明:截图中用的RocketMQ版本是4.9.6搭建完成后无法启动服务,且参数配置不一致,固版本更换为5.3.1所以请忽略截图中的版本号 参考文字信息!
第一步: 下载RocketMQ镜像(并推送到Harbor仓库)
拉取RocketMQ镜像
docker pull docker.unsee.tech/apache/rocketmq:5.3.1
重新打标签并推送到Harbor仓库
docker tag docker.unsee.tech/apache/rocketmq:5.3.1 dockerhub.kubekey.local/library/apache/rocketmq:5.3.1
docker push dockerhub.kubekey.local/library/apache/rocketmq:5.3.1
第二步: 搭建 NameServer
- 打开kubesphere,进入服务页面,点击创建。
- 选择创建有状态服务,填写基本信息
名称: rocketmq-namesrv
描述: RocketMQ NameServer
3. 填写容器组设置
选择容器镜像,点击使用默认端口
由于只需配置NameServer,只需保留9876端口
配置启动命令
sh
mqnamesrv
同步主机时区
- 查看容器
查看服务
启动日志
第三步: 搭建 Broker+Proxy
- 创建 broker configmap
进入项目中的配置字典,创建,填写基本信息
名称: rocketmq-broker-cm
描述: RocketMQ Broker ConfigMap
- 填写数据设置
键
broker.conf
值
# 集群名称
brokerClusterName=DefaultCluster
# 节点名称
brokerName=broker-a
# broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0
brokerId=0
# Broker服务地址 String 内部使用填内网ip,如果是需要给外部使用填公网ip
brokerIP1=rocketmq-broker.registry
# Broker角色
brokerRole=ASYNC_MASTER
# 刷盘方式
flushDiskType=ASYNC_FLUSH
# 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04
deleteWhen=04
# 以小时计算的文件保留时间 默认值72小时
fileReservedTime=72
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
-
打开kubesphere,进入服务页面,点击创建。
-
选择创建有状态服务,填写基本信息
名称: rocketmq-broker
描述: RocketMQ Broker
- 填写容器组设置
选择容器镜像,点击使用默认端口
去除9876端口,添加8080 8081端口
配置启动命令
sh
mqbroker,--enable-proxy,-bc /home/rocketmq/rocketmq-5.3.1/conf/broker.conf
配置环境变量,同步主机时区
NAMESRV_ADDR rocketmq-namesrv.registry:9876
- 存储设置
挂载配置文件 挂载子路径 选择特定键
/home/rocketmq/rocketmq-5.3.1/conf/broker.conf
broker.conf
- 查看容器
查看容器 进入终端
启动日志
第四步: 下载 RocketMQ Dashboard镜像(并推送到Harbor仓库)
拉取RocketMQ Dashboard镜像镜像
docker pull docker.unsee.tech/apacherocketmq/rocketmq-dashboard:1.0.0
重新打标签并推送到Harbor仓库
docker tag docker.unsee.tech/apacherocketmq/rocketmq-dashboard:1.0.0 dockerhub.kubekey.local/library/apacherocketmq/rocketmq-dashboard:1.0.0
docker push dockerhub.kubekey.local/library/apacherocketmq/rocketmq-dashboard:1.0.0
第五步: 搭建 RocketMQ Dashboard
-
打开kubesphere,进入服务页面,点击创建。
-
选择创建无状态服务,填写基本信息
名称: rocketmq-dashboard
描述: RocketMQ Dashboard
-
填写容器组设置
选择容器镜像
添加8080端口
配置环境变量,同步主机时区
JAVA_OPTS
-Drocketmq.namesrv.addr=rocketmq-namesrv.registry:9876
- 查看容器
查看容器 进入终端
启动日志
第五步: 通过nodeport配置 RocketMQ Borker 与 RocketMQ Dashboard访问端口
- 点击服务创建指定工作负载
- 配置 RocketMQ Borker 对外端口
选择指定工作负载,同时配置 10099 映射到 外网随机端口
- 配置 RocketMQ Dashboard 对外端口
选择指定工作负载,同时配置 8080 映射到 外网随机端口
- 访问 RocketMQ Dashboard
浏览器打开 发现RocketMQ服务 已显示
http://192.168.10.10:36449/#/cluster