RocketMQ Docker部署

这篇具有很好参考价值的文章主要介绍了RocketMQ Docker部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 镜像制作前准备

1.1 clone rocketmq-docker项目的代码

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

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

2. 构建镜像

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

  • rocketmq-dashboard镜像(web控制台)
  • rocketmq镜像(NameSrv和Broker)

2.1 rocketmq镜像构建

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

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

docker部署rocketmq,java,servlet,开发语言

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

docker image ls
复制代码

docker部署rocketmq,java,servlet,开发语言

2.2 rocketmq-dashboard镜像构建

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

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

BASE-IMAGE只支持centos

docker部署rocketmq,java,servlet,开发语言

等待镜像构建完成。

docker image ls
复制代码

docker部署rocketmq,java,servlet,开发语言

3. Docker-compose 安装

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

3.1 环境准备

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

docker部署rocketmq,java,servlet,开发语言

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

3.2 RockerMQ 单机部署

3.2.1 NameSrv的Docker宿主机环境

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

mkdir -p /root/rocketmq/data/namesrv/logs

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

3.2.2 Broker的Docker宿主机环境

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

mkdir -p /root/rocketmq/data/broker/logs
mkdir -p /root/rocketmq/data/broker/store
mkdir -p /root/rocketmq/etc/broker
复制代码

3.2.3 Broker配置文件创建

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

文件内容如下:

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

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

3.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,也没日志打印。这里可能是挂载路径没有权限的问题。加上权限即可。

docker部署rocketmq,java,servlet,开发语言

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

docker部署rocketmq,java,servlet,开发语言文章来源地址https://www.toymoban.com/news/detail-666079.html

4. 总结

  • 总的来说大家可以根据官方的 rocketmq-docker 项目来进行docker部署。这里也存在一些问题,我开始用官方的创建镜像很慢,特别是下载和编译的时候。这里也可以在本地将项目进行编译然后修改一下从本地进行镜像构建。这样构建有一个好处,在本地能够构建正在开发的版本镜像。
  • 官方的Docker-compose没有将rocketmq-dashboard控制台进行运行。

到了这里,关于RocketMQ Docker部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RocketMQ部署 Linux方式和Docker方式

    准备一台Linux机器,部署单master rocketmq节点 系统 ip 角色 模式 CENTOS 10.4.7.126 Nameserver,broker Master 1. 配置JDK rocketmq运行需要依赖jdk,安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/download/ ,并上传到CENTOS系统中,并进行解压 修改rocketmq启动所需配置文件

    2024年02月12日
    浏览(39)
  • docker、docker-compose部署rocketmq4.7.0

    1.版本历史 4.7.0 server-4.6.1 , broker-4.6.1 server-4.5.2 , broker-4.5.2 server-4.5.1 , broker-4.5.1 server-4.5.0 , broker-4.5.0 2.本镜像使用的是官方的 https://github.com/apache/rocketmq-docker 官方地址,有问题找官方 rocketmq rocketmq Version 4.5.1, 4.5.2 ,4.6.1 , 4.7.0 3.docker-rocketmq 镜像 4.7.0 版本镜像 将 不在根据base镜像

    2024年02月16日
    浏览(45)
  • docker部署RocketMQ(外网IP)10911链接失败

    在此步骤对接JAVA项目可能会出现外网连接MQ(connect:xxx.xxx.xxx.xxx:10911)异常 指定配置文件 配置文件内容如下: 解决办法: 如果上述方法仍未解决 进入容器使用linux命令查找所有broker配置文件全部修改为以上配置文件样式并重启容器 修改文件内容

    2024年02月14日
    浏览(34)
  • arm版mac使用docker部署rocketMQ

    最近在做一些关于rocketMQ社区工作。由于需要测试多个版本的兼容性,公司开发环境只有一个版本集群,于是想使用docker部署测试。官方并没有提供arm版本的镜像,docker hub上下载了几个都有问题。 索性rockeMQ社区提供多个边缘组件,其中有单独的项目用于编译镜像。于是自己

    2024年02月09日
    浏览(45)
  • Docker部署RocketMQ5.x (单机部署+配置参数详解+不使用docker-compose直接部署)

    官网地址:https://rocketmq.apache.org/ 镜像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的时候最新发行版是5.1.0可以根据需求自行选择一个5.x的版本,部署流程不会有太大改变。 NameServer是一个简单的 Topic 路由注册中心,支持 Topic、Broker 的动态注册与发现,几乎无状态节点

    2024年02月06日
    浏览(76)
  • 使用docker-compose部署RocketMQ5.x 单机部署+配置参数详解

    提前先拉取需要的镜像文件,避免后面部署的时候出现镜像拉取失败的问题。 镜像地址: https://hub.docker.com/r/apache/rocketmq/tags 我在部署的时候最新发行版是5.1.0可以根据需求自行选择一个5.x的版本,部署流程不会有太大改变。 拉取最新版即可 这里使用compose v2版本 1、下载(使

    2024年02月08日
    浏览(53)
  • mac M1 arm芯片 进行docker rocketMq 本地部署(亲测可用)

    由于mac arm芯片的问题,导致随便拉取镜像会出现AMD64的警告,如果不想出现则可以 git clone https://github.com/apache/rocketmq-docker.git 拉代码自己编译镜像 下面是根据别人已经上传的镜像进行的本地部署操作 下面两个镜像都是某位老哥打包的,测试无问题 注意: runserver.sh,runbr

    2024年02月12日
    浏览(50)
  • 【Docker】RocketMQ5.1.0的配置部署与基于SpringBoot3.0.5的代码基础配置

    JAVA 17 SpringBoot 3.0.5 CentOS 7.5 Rocket 5.1.0 1.1 查看镜像 1.2 拉取镜像 1.3 查看已拉取镜像 1.4 创建挂载文件夹 1.4.1 创建Broker挂载文件夹 1.4.2 创建NameServer挂载文件夹 1.5 启动容器以复制配置文件 1.5.1 启动NamerServer容器 1.5.2 复制NameServer启动脚本 1.5.3 修改脚本文件 1.5.4 停止并删除Name

    2024年02月12日
    浏览(41)
  • 使用 Docker 安装 RocketMQ 使用 docker 安装 rocketmq

    Docker常用命令大全 RocketMQ 是一个分布式的消息中间件,由 NameServer 和Broker两个角色组成,是一种典型的基于发布/订阅模式的消息通信解决方案。 NameServer 是 RocketMQ 的命名服务,可以理解为类似于 DNS 的服务,它主要负责记录 Topic 的路由信息和 Broker 的地址信息。每个 Rocket

    2024年02月13日
    浏览(40)
  • Docker实战:docker compose 搭建Rocketmq

    进入/home/docker目录,新建docker-compose-rocketmq.yml文件,内容如下: 浏览器访问:http://192.168.17.173:8087/#/,效果图如下,至此,docker compose 搭建Rocketmq完成

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包