文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

RocketMQ Docker部署

2023-09-20 14:50

关注

1. 镜像制作前准备

1 clone rocketmq-docker项目的代码

#官方的docker地址git clone https://github.com/apache/rocketmq-docker.git复制代码

执行上面命令克隆下来这项目的代码。

2. 构建镜像

这里需要构建的镜像有两个

1 rocketmq镜像构建

cd image-buildsh build-image.sh RMQ-VERSION BASE-IMAGE复制代码

原理:通过版本和BASE-IMAGE(支持centos, alpine)来判断是使用 Dockerfile-centos文件还是Dockerfile-alpine文件来构建镜像。

等待镜像构建完成,然后通过docker命令查看

docker image ls复制代码

2 rocketmq-dashboard镜像构建

和构建rocketmq镜像一样,我们依葫芦画瓢构建rocketmq-dashboard镜像

cd image-buildsh build-image-dashboard.sh dashboard-VERSION BASE-IMAGE复制代码

BASE-IMAGE只支持centos

等待镜像构建完成。

docker image ls复制代码

3. Docker-compose 安装

这里为什么用Docker-compose 安装呢?因为RocketMQ的安装的东西有三个部分:namesrv、broker、rocketmq-dashboard ,用Docker-compose安装起来比较方便。

1 环境准备

本地已经有了rocketmq-dashboard镜像和rocketmq镜像

在构建rocketmq-dashboard的时候可以修改Dockerfile-centos-dashboard文件的最后一条命令如:ENTRYPOINT ["java","${JAVA_OPTS}", "-jar", "bin/rocketmq-dashboard.jar"]; 这样构建的镜像可以调节JVM的内存大小.好处就是如果你机器内存小就可以将这个内存设置的小一点

2 RockerMQ 单机部署

2.1 NameSrv的Docker宿主机环境

主要配置的是日志路径以及存储路径。(挂载路径)

mkdir -p /root/rocketmq/data/namesrv/logsmkdir -p /root/rocketmq/data/namesrv/store复制代码

2.2 Broker的Docker宿主机环境

主要创建日志、数据存储、以及配置存放的挂载路径

mkdir -p /root/rocketmq/data/broker/logsmkdir -p /root/rocketmq/data/broker/storemkdir -p /root/rocketmq/etc/broker复制代码

2.3 Broker配置文件创建

nano /root/rocketmq/etc/broker/broker.conf复制代码

文件内容如下:

brokerClusterName = mxsm-dockerbrokerName = mxsm-docker-abrokerId = 0deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERflushDiskType = ASYNC_FLUSH# Docker环境需要设置成宿主机IP#brokerIP1 = {docker宿主机IP}brokerIP1 = 192.168.43.128复制代码

例如:在Docker宿主机通过命令查询到的IP地址为 192.168.43.128 那么这个地方就设置为 192.168.43.128

2.4 编写Docker-compose文件

这里编写Docker-compose文件版本使用的3,有的人docker可能版本没这么高,可以使用2看个人调整。

version: '3'services:  #Service for nameserver  namesrv:    image: apacherocketmq/rocketmq:4.9.2    container_name: rocketmq-namesrv    ports:      - 9876:9876    environment:      - JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m    volumes:      - /root/rocketmq/data/namesrv/logs:/root/logs    command: sh mqnamesrv  #Service for broker  broker:    image: apacherocketmq/rocketmq:4.9.2    container_name: rocketmq-broker    links:      - namesrv    depends_on:      - namesrv    ports:      - 10909:10909      - 10911:10911      - 10912:10912    environment:      - NAMESRV_ADDR=namesrv:9876      - JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn256m    volumes:      - /root/rocketmq/data/broker/logs:/home/rocketmq/logs      - /root/rocketmq/data/broker/store:/home/rocketmq/store      - /root/rocketmq/etc/broker/broker.conf:/home/rocketmq/conf/broker.conf    command: sh mqbroker -c /home/rocketmq/conf/broker.conf  #Service for rocketmq-dashboard  dashboard:    image: apache/rocketmq-dashboard:1.0.0-centos    container_name: rocketmq-dashboard    ports:      - 8080:8080    links:      - namesrv    depends_on:      - namesrv    environment:      - NAMESRV_ADDR=namesrv:9876复制代码

运行命令:

docker-compose -f ./docker-compose.yml up复制代码

然后查看运行的情况。

在运行的过程中总是发现有这样的一个问题:rocketmq-broker exited with code 253,也没日志打印。这里可能是挂载路径没有权限的问题。加上权限即可。

然后在本地登录web控制台进行验证

4. 总结

来源地址:https://blog.csdn.net/2301_76607156/article/details/130063183

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯