【RocketMQ】005-Docker 部署 RocketMQ

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

【RocketMQ】005-Docker 部署 RocketMQ

一、部署

1、拉取镜像

MQ 镜像

docker pull rocketmqinc/rocketmq:latest

可视化平台镜像

docker pull styletang/rocketmq-console-ng:latest

2、创建挂载目录

创建 nameserver 挂载目录

mkdir -p /home/zibo/docker/rocketmq/data/namesrv/logs /home/zibo/docker/rocketmq/data/namesrv/store

创建 broker 目录

mkdir -p /home/zibo/docker/rocketmq/data/broker/logs /home/zibo/docker/rocketmq/data/broker/store

创建 broker 配置文件目录

mkdir -p /home/zibo/docker/rocketmq/data/conf

3、编辑配置文件

目录:/home/zibo/docker/rocketmq/data/conf

vim broker.conf

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址,也就是centosOS7的服务ip
brokerIP1 = [ip地址]
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

4、启动服务

启动 nameserver

docker run -d --restart=always --name rocketmq_nameserver -p 9876:9876 -v /home/zibo/docker/rocketmq/data/namesrv/logs:/root/logs -v /home/zibo/docker/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
  • docker run: 这是Docker命令,用于创建和管理Docker容器。
  • -d: 这是一个选项,指示Docker在后台运行容器。
  • --restart=always: 这是一个选项,指示Docker容器在退出时总是重新启动。
  • --name rocketmq_nameserver: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_nameserver"。
  • -p 9876:9876: 这是一个选项,用于将主机的端口9876映射到容器的端口9876。RocketMQ的NameServer使用端口9876进行通信。
  • -v /home/zibo/docker/rocketmq/data/namesrv/logs:/root/logs: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/namesrv/logs挂载到容器中的/root/logs目录。这样做是为了将NameServer的日志文件保存在主机上,方便查看和管理。
  • -v /home/zibo/docker/rocketmq/data/namesrv/store:/root/store: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/namesrv/store挂载到容器中的/root/store目录。这样做是为了将NameServer存储的数据文件保存在主机上,以便持久化存储。
  • -e "MAX_POSSIBLE_HEAP=100000000": 这是一个选项,用于设置环境变量。在这里,它设置了一个名为MAX_POSSIBLE_HEAP的环境变量,并将其值设置为100000000。这个环境变量可以用来调整NameServer的堆内存大小。
  • rocketmqinc/rocketmq: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ官方提供的镜像,该镜像用于运行RocketMQ。
  • sh mqnamesrv: 这是在容器中要运行的命令。它启动了RocketMQ的NameServer组件。

综上所述,该命令将创建一个名为"rocketmq_nameserver"的Docker容器,并在该容器中以后台模式运行RocketMQ的NameServer组件。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。主机的9876端口映射到容器的9876端口,NameServer的日志和数据文件将存储在主机的相应目录中。通过设置环境变量,可以调整NameServer的堆内存大小。使用的是RocketMQ官方提供的镜像来运行容器。

启动 broker

docker run -d --restart=always --name rocketmq_broker --link rocketmq_nameserver:namesrv -p 10911:10911 -p 10909:10909 -v /home/zibo/docker/rocketmq/data/broker/logs:/root/logs -v /home/zibo/docker/rocketmq/data/broker/store:/root/store -v /home/zibo/docker/rocketmq/data/conf/broker.conf:/opt/rocketmqinc/rocketmq/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmqinc/rocketmq/conf/broker.conf
  • docker run: 这是Docker命令,用于创建和管理Docker容器。
  • -d: 这是一个选项,指示Docker在后台运行容器。
  • --restart=always: 这是一个选项,指示Docker容器在退出时总是重新启动。
  • --name rocketmq_broker: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_broker"。
  • --link rocketmq_nameserver:namesrv: 这是一个选项,用于将容器与另一个容器rocketmq_nameserver进行链接。这样可以让Broker容器知道NameServer的位置。
  • -p 10911:10911 -p 10909:10909: 这是选项,用于将主机的端口10911和10909映射到容器的端口10911和10909。RocketMQ的Broker使用这些端口进行通信。
  • -v /home/zibo/docker/rocketmq/data/broker/logs:/root/logs: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/broker/logs挂载到容器中的/root/logs目录。这样做是为了将Broker的日志文件保存在主机上,方便查看和管理。
  • -v /home/zibo/docker/rocketmq/data/broker/store:/root/store: 这是一个选项,用于将主机上的目录/home/zibo/docker/rocketmq/data/broker/store挂载到容器中的/root/store目录。这样做是为了将Broker存储的数据文件保存在主机上,以便持久化存储。
  • -v /home/zibo/docker/rocketmq/data/conf/broker.conf:/opt/rocketmqinc/rocketmq/conf/broker.conf: 这是一个选项,用于将主机上的/home/zibo/docker/rocketmq/data/conf/broker.conf文件挂载到容器中的/opt/rocketmqinc/rocketmq/conf/broker.conf路径。这样做是为了将自定义的Broker配置文件挂载到容器中。
  • -e "NAMESRV_ADDR=namesrv:9876": 这是一个选项,用于设置环境变量。它设置了一个名为NAMESRV_ADDR的环境变量,并将其值设置为namesrv:9876。这个环境变量用于告知Broker容器NameServer的地址和端口。
  • -e "MAX_POSSIBLE_HEAP=200000000": 这是一个选项,用于设置环境变量。它设置了一个名为MAX_POSSIBLE_HEAP的环境变量,并将其值设置为200000000。这个环境变量可以用来调整Broker的堆内存大小。
  • rocketmqinc/rocketmq: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ官方提供的镜像,该镜像用于运行RocketMQ。
  • sh mqbroker -c /opt/rocketmqinc/rocketmq/conf/broker.conf: 这是在容器中要运行的命令。它启动了RocketMQ的Broker组件,并指定了配置文件/opt/rocketmqinc/rocketmq/conf/broker.conf

综上所述,该命令将创建一个名为"rocketmq_broker"的Docker容器,并在该容器中以后台模式运行RocketMQ的Broker组件。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。主机的10911和10909端口映射到容器的10911和10909端口,Broker的日志和数据文件将存储在主机的相应目录中。通过设置环境变量,可以配置Broker连接到NameServer的地址和端口,以及调整Broker的堆内存大小。使用的是RocketMQ官方提供的镜像来运行容器,并指定了自定义的Broker配置文件。

启动可视化平台

docker run -d --restart=always --name rocketmq_console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=[nameserver的ip]:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 9877:8080 styletang/rocketmq-console-ng
  • docker run: 这是Docker命令,用于创建和管理Docker容器。
  • -d: 这是一个选项,指示Docker在后台运行容器。
  • --restart=always: 这是一个选项,指示Docker容器在退出时总是重新启动。
  • --name rocketmq_console: 这是一个选项,用于为容器指定名称,这里将容器命名为"rocketmq_console"。
  • -e "JAVA_OPTS=-Drocketmq.namesrv.addr=[nameserver的ip]:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false": 这是一个选项,用于设置环境变量。在这里,设置了一个名为JAVA_OPTS的环境变量,其中包含了两个参数:
    • -Drocketmq.namesrv.addr=[nameserver的ip]:9876:这个参数用于指定RocketMQ控制台连接的NameServer的地址和端口。你需要将[nameserver的ip]替换为实际的NameServer的IP地址。
    • -Dcom.rocketmq.sendMessageWithVIPChannel=false:这个参数用于禁用VIP通道发送消息。
  • -p 9877:8080: 这是一个选项,用于将主机的端口9877映射到容器的端口8080。RocketMQ控制台使用8080端口进行访问。
  • styletang/rocketmq-console-ng: 这是指定要使用的Docker镜像的名称。在这里,使用的是RocketMQ控制台(Console)的镜像。

综上所述,该命令将创建一个名为"rocketmq_console"的Docker容器,并在该容器中以后台模式运行RocketMQ控制台。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。RocketMQ控制台将连接到指定的NameServer,你需要将[nameserver的ip]替换为实际的NameServer的IP地址。控制台将通过主机的9877端口进行访问,映射到容器的8080端口。使用的是RocketMQ控制台(Console)的镜像来运行容器。

二、访问界面

ip:9877,别忘记开端口!

【RocketMQ】005-Docker 部署 RocketMQ,MQ,Docker,java-rocketmq,rocketmq,docker

三、其他

参考文章:

docker部署RocketMQ

https://blog.csdn.net/SmallCat0912/article/details/128535930文章来源地址https://www.toymoban.com/news/detail-576553.html

到了这里,关于【RocketMQ】005-Docker 部署 RocketMQ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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

领红包