【RocketMQ】005-Docker 部署 RocketMQ

news2024/12/27 13:08:04

【RocketMQ】005-Docker 部署 RocketMQ

文章目录

  • 【RocketMQ】005-Docker 部署 RocketMQ
  • 一、部署
    • 1、拉取镜像
      • MQ 镜像
      • 可视化平台镜像
    • 2、创建挂载目录
      • 创建 nameserver 挂载目录
      • 创建 broker 目录
      • 创建 broker 配置文件目录
    • 3、编辑配置文件
    • 4、启动服务
      • 启动 nameserver
      • 启动 broker
      • 启动可视化平台
  • 二、访问界面
  • 三、其他

一、部署

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,别忘记开端口!

image-20230712202335069

三、其他

参考文章:

docker部署RocketMQ

https://blog.csdn.net/SmallCat0912/article/details/128535930

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch保存、加载和解析模型权重

1、模型保存和加载 主要有两种情况:一是仅保存参数,二是保存参数及模型结构。 保存参数: torch.save(net.state_dict()) 加载参数(加载参数前需要先实例化模型): param torch.load(param.pth) net.load_…

AWS 中文入门开发教学 47- S3 - 基本的使用

知识点 S3 - 基本的使用方法实战演习 创建存储桶 阻止所有公网访问: 打开版本控制、添加标签: KMS是收费的: 创建成功: 上传文件 选择存储类:

这是中国人工智能AI激情澎湃的一周

融资 贝联珠贯完成 5000 万元天使轮融资,业务涵盖 AI 型算力市场据投中网报道,近日,云资源管理服务提供商浙江贝联珠贯宣布完成 5000 万元天使轮融资,由元璟资本、红杉中国种子基金和舟轩股权投资。 盛大网络 CEO 陈天桥再投 1…

springboot就业信息管理系统

本次设计任务是要设计一个就业信息管理系统,通过这个系统能够满足就业信息管理功能。系统的主要功能包括:首页,个人中心,学生管理,导师管理,企业管理,招聘信息管理,应聘信息管理&…

DMA是一个超级简化版的cpu吗?

来自群友的讨论 我的理解是DMA某种程度相当于一个CPU是因为DMA拥有访问其他地址空间的权利。 从系统角度考虑,对整个系统的观测者一般CPU DSP GPU DMA是一个级别,其他都是slave。cache一致性POC是要保证所有观测者,包括DMA观测到相同数据。 …

【学习bubbliiiing代码-2】从txt中获取类别名称以及类别数量

本系列主要用于自我学习,参考的为bubbliiiing的代码 写一个优雅的:从txt文件中获得类别名与类别数的函数,如下: #---------------------------------------------------# # 获得类别名与类别数 #-----------------------------…

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接 1. 前言2. 实现过程3. 运行结果 1. 前言 文章内容可能存在版权问题,为此,小编不提供相关实现代码,只是从js逆向说一说到底怎样实现这个的过程,希望能够帮助到那些正在做…

主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

SIP协议学习(2)

文章目录 注册(REGISTER)1、AOR和Contact区别2、注册概述3、注册与定位服务4、注册超时处理5、注册消息6、多Contact地址处理7、下期预告 注册(REGISTER) 1、AOR和Contact区别 在学习注册之前,首先区分一下AOR和Cont…

Threads上线5天用户增至1亿,Threads软件常见问题百问百答

7月10日,脸书(Facebook)母公司Meta旗下新应用程序Threads上线的第5天,其用户数量已经超过1亿。这一增长速度打破聊天机器人ChatGPT的纪录——推出两个月内活跃用户量才破亿。 Threads或成为史上用户数增长速度最快的消费者应用。 …

Mysql数据库基础和增删改查操作

目录 一、数据库基本概念 二、数据库类型和常用数据库 1.关系型数据库 2.非关系型数据库 三、数据库的数据类型 四、SQL语句 1.简介 2.分类 五、SQL语句的使用 1.数据库操作 (1)创建数据库 ​编辑 (2)查看数据库 &am…

mac MySQL修改密码

简介: MySQL是一种常用的关系型数据库管理系统。在某些情况下,您可能需要关闭MySQL服务或修改root密码。本文将向您展示如何执行这些操作的步骤。 步骤1:关闭MySQL服务 打开MySQL软件并关闭它。 或者使用以下命令关闭MySQL服务&#xff1a…

conda的使用

一、conda 1、为什么使用conda 在安装Python包的过程中,可能遇到依赖包的问题。例如,要安装numpy,需要先安装BLAS和LAPACK等库。在使用pip等包管理工具时,这些依赖包需要手动安装,操作起来可能比较繁琐。而conda是一个…

pdf怎么添加水印图片?分享3个超实用解决方法

在使用PDF文件时,我们经常会看到一些设置的水印,这提醒观看者文件的所有权。给PDF文件添加水印是一种常见且实用的功能。为了解决如何给PDF添加水印的问题,我将介绍几种常用的方法。 方法一:使用WPS添加水印 WPS是我们常用的办公…

【分布式应用】zookeeper集群

目录 一、zookeeper概述1.1zookeeper工作机制1.2Zookeeper 数据结构1.3Zookeeper 应用场景1.4Zookeeper 选举机制第一次启动选举机制**非第一次启动选举机制 二、部署 Zookeeper 集群2.1环境配置2.2安装 Zookeeper 一、zookeeper概述 Zookeeper是一个开源的分布式的&#xff0c…

1.内核驱动中,驱动注册,阻塞IO,gpio子系统,中断处理的整体结合示例

一,功能实现要求 /*功能实现 在stm32开发板上实现功能 1.使用阻塞IO读取number变量的值,当number的值改变时打印number的值 2.注册KEY1按键的驱动和LED1的驱动以及对应的设备文件, 3.按键和指示灯设备信息放在同一个设备树的节点中 4.当KEY1…

TypeScript 类型体操:合并映射类型的处理结果为联合类型(记录)

一般索引索引 type boy {name : string,age : number } 对索引类型映射 type onlyBoy<obj> {readonly [key in keyof obj] : obj[key] } 使用 type res onlyBoy<boy>; 输出 这些都是对索引类型整体做的变换&#xff0c;变换的结果依然是一个索引类型。有的…

提示“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”,如何解决?

在aspx网站部署过程中&#xff0c;出现“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”的提示&#xff0c;如下图&#xff0c;如何解决&#xff1f; 解决方案1&#xff1a; Web.Config里面 把sessionState 的mode改为&quo…

ChatGPT对高校人才培养模式的挑战与应对策略思考

酷吗&#xff1f;输入指令后直接就能生成一大串代码&#xff0c;即使不懂相关技术也能玩转编程&#xff0c;这就是ChatGPT赋予你的“新能力”&#xff0c;除了写代码&#xff0c;ChatGPT还能帮你执行各种五花八门的任务。 AI工具如ChatGPT在行业中的广泛应用对于行业的人才结…

全网最牛,Python自动化测试-日志Log处理(超细)一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 日志就是用于记录…