【RocketMQ】005-Docker 部署 RocketMQ

【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.hqwc.cn/news/20360.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记--TinyBERT: Distilling BERT for Natural Language Understanding

论文笔记--TinyBERT: Distilling BERT for Natural Language Understanding 1. 文章简介2. 文章概括3 文章重点技术3.1 Transformer Distillation3.2 两阶段蒸馏 4. 数值实验5. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:TinyBERT: Distilling BERT fo…

GPON MAC SFP ONU模块介绍与应用

伴随着网络通讯技术的发展,pon无源光网络正逐步走进人们的视野;在这之前你是否仅知道以太网接入?相比与以太网接入,pon作为一种点到多点网络,具有运维成本低、服务范围广、资源占用少等优势;我们最为熟知的…

FlinkCDC第四部分-同步mysql到mysql,ctrl就完事~(flink版本1.17.1)

本文介绍了不同源单表-单表同步,不同源多表-单表同步。 注:此版本支持火焰图 Flink版本:1.17.1 环境:Linux CentOS 7.0、jdk1.8 基础文件: flink-1.17.1-bin-scala_2.12.tgz、 flink-connector-jdbc-3.0.0-1.16.…

centos7根分区、文件系统扩容

1、 输入lsblk,查看到新硬盘sde,根目录现71G. 2、 创建分区fidisk /dev/sde 3、 刷新分区 partprobe /dev/sde,并创建物理卷 pvcreate /dev/sde1 4、 查看卷组名 vgdisplay 5、 将物理卷扩展到卷组 vgextend centos /dev/sde1 6、 查看逻辑巻…

拉丁语翻译器有哪些?一分钟快速分享

拉丁语翻译器有哪些?拉丁语是一种古老的语言,现在已经不再作为主要的交流工具使用。然而,在某些学术领域和文化传承中,拉丁语仍然具有重要地位。因此,当我们需要翻译拉丁语时,使用翻译器可以提高效率和准确…

立式oled拼接屏有哪些产品优点?

葫芦岛oled拼接屏是一种高清晰度的显示屏,由多个oled屏幕拼接而成。它可以用于广告牌、展览、演示、会议等场合,具有高亮度、高对比度、高色彩饱和度、高刷新率等优点,能够吸引人们的眼球,提高信息传递效果。 葫芦岛oled拼接屏的优…

Nodejs快速搭建简单的HTTP服务器,并发布公网远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

ens33没有inet地址

1)切换到根用户 su - root 按提示输入密码(不切换到根用户没有权限修改文件) (2)输入cd /etc/sysconfig/network-scripts/ (3)输入vi ifcfg-ens33 ifcfg-ens33 (4)光标移…

SQL力扣练习(六)

目录 1. 部门工资前三高的所有员工(185) 题解一(dense_rank()窗口函数) 题解二(自定义函数) 2.删除重复的电子邮箱(196) 题解一 题解二(官方解析) 3.上升的温度(197) 解法一(DATEDIFF())…

阿里云AliYun物联网平台使用-设备添加以及模拟设备端上云

一、前言 上一篇文章提到,我们已经申请了免费的阿里云平台,下面需要将我们的设备在阿里云上进行注册和申请,以便于我们的数据上云。 二、步骤 注册产品(设备模型) 在产品页面,点击 "创建产品" 。…

windows下使用arp 协议

/ //自动扫描局域网存活主机 本程序是利用arp协议去获取局域网中的存活主机 arp协议概述 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请…

python散记

"""字符串格式化的两种方法"""name"sans" age18 math_score90.56 english_score88.8print(f"这个学生的名字叫{name},年龄{age},数学分数是{math_score},总分是{math_scoreenglish_score}") print("这个学生的名字叫%s…