代码编织梦想

文章结构:双主双从配置中顺带夹杂着Slave节点启动失败的解决方法

截止2021-07-07(中国人永远铭记七七!不忘历史!),我仍找不到较完整的Broker从节点闪退解决方法,因此撰写一篇

闪退问题所在1

闪退问题所在2

闪退问题所在3

闪退问题所在4

一、需要2个Linux服务器

原本需要4个,但本人电脑太捞了…
这2个服务器需先配好JDK8、RocketMQ4的环境
如何配置JDK8请跳转:CentOS8安装JDK1.8.0(tar.gz形式)

二、修改RockeMQ的启动内存

闪退问题所在1:

服务器性能太捞,而RocketMQ默认的启动所需内存大,服务器蚌埠住就会让RocketMQ滚,这…连NameServer都别想启动了,还说什么Broker从节点呢…

1、进入runserver.sh,修改内存

路径按自己的实际情况改(之后需要路径的地方也是如此)

vim /usr/local/soft/rocketmq-4.9.0/bin/runserver.sh

找到原来的:

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

改为:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

2、进入runbroker.sh

vim /usr/local/soft/rocketmq-4.9.0/bin/runbroker.sh

找到原来的:

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

改为:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

三、RocketMQ节点设置

1、构建思路

Broker主从交叉,目的是防止某个服务器宕了后该服务器中的消息数据全部丢失
20210707135129659.png

服务器IP角色Broker节点
1192.168.1.1NameServer、BrokerMaster1、Slave2
2192.168.1.2NameServer、BrokerMaster2、Slave1

2、依据构建的节点来修改Hosts

(1) 主要目的是为节点IP起别名,方便书写

进入hosts:

vim /etc/hosts

添加上:

# nameserver
192.168.1.1 rocketmq-nameserver1
192.168.1.2 rocketmq-nameserver2
# broker
192.168.1.1 rocketmq-master1
192.168.1.1 rocketmq-slave2
192.168.1.2 rocketmq-master2
192.168.1.2 rocketmq-slave1
(2) 重启网卡(与CentOS7的systemctl不同)
nmcli connection down ens33 && nmcli connection up ens33

四、关闭防火墙

关闭防火墙:

systemctl stop firewalld.service

查看防火墙状态:

firewall-cmd --state

禁止防火墙开机启动:

systemctl disable firewalld.service

五、配置RocketMQ环境变量

进入配置文件:

vim /etc/profile

在文件最末端添加:

# Set RocketMQ
ROCKETMQ_HOME=/usr/local/soft/rocketmq-4.9.0
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME
export PATH

让配置文件生效:

source /etc/profile

六、修改Broker配置文件

不建议通过Notepad++的NppFTP插件修改,有时候在Notepad++改了但Linux仍不变(可能存在延迟吧),这样会导致Broker启动失败

(一) 服务器1

1、Master1,即broker-a.properties

进入broker-a.properties:

vim /usr/local/soft/rocketmq-4.9.0/conf/2m-2s-sync/broker-a.properties

注释掉原有内容(之后提及的3个properties配置文件都得这样,下方不再提及):

# brokerClusterName=DefaultCluster
# brokerName=broker-b
# brokerId=1
# deleteWhen=04
# fileReservedTime=48
# brokerRole=SLAVE
# flushDiskType=ASYNC_FLUSH

添加以下内容:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样; 在broker-b.properties中此处需要修改为:brokerName=broker-b
brokerName=broker-a
#0: Master; >0: Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#broker启动地址,rocketmq默认内网启动
brokerIP1=192.168.1.1
#broker的HAIP地址(供Slave同步消息的地址)
brokerIP2=192.168.1.1
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48h
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/soft/rocketmq-4.9.0/store-a1
#commitLog 存储路径
storePathCommitLog=/usr/local/soft/rocketmq-4.9.0/store-a1/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/soft/rocketmq-4.9.0/store-a1/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/soft/rocketmq-4.9.0/store-a1/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/soft/rocketmq-4.9.0/store-a1/checkpoint
#abort 文件存储路径
abortFile=/usr/local/soft/rocketmq-4.9.0/store-a1/abort
#限制的消息大小
maxMessageSize=65536
#Broker角色: ASYNC_MASTER(异步复制Master)、SYNC_MASTER(同步双写Master)、SLAVE(从节点)
brokerRole=SYNC_MASTER
#刷盘方式: ASYNC_FLUSH(异步刷盘)、SYNC_FLUSH(同步刷盘)
flushDiskType=SYNC_FLUSH

2、Slave2,即broker-b-s.properties

进入broker-b-s.properties:

vim /usr/local/soft/rocketmq-4.9.0/conf/2m-2s-sync/broker-b-s.properties

注释掉…
添加以下内容:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,在broker-b-s.properties中需修改为:brokerName=broker-b
brokerName=broker-b
#0: Master; >0: Slave
brokerId=50
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#broker启动地址,rocketmq默认内网启动
brokerIP1=192.168.1.1
#broker的HAIP地址(供Slave同步消息的地址)
brokerIP2=192.168.1.1
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48h
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/soft/rocketmq-4.9.0/store-b1
#commitLog 存储路径
storePathCommitLog=/usr/local/soft/rocketmq-4.9.0/store-b1/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/soft/rocketmq-4.9.0/store-b1/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/soft/rocketmq-4.9.0/store-b1/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/soft/rocketmq-4.9.0/store-b1/checkpoint
#abort 文件存储路径
abortFile=/usr/local/soft/rocketmq-4.9.0/store-b1/abort
#限制的消息大小
maxMessageSize=65536
#Broker角色: ASYNC_MASTER(异步复制Master)、SYNC_MASTER(同步双写Master)、SLAVE(从节点)
brokerRole=SLAVE
#刷盘方式: ASYNC_FLUSH(异步刷盘)、SYNC_FLUSH(同步刷盘)
flushDiskType=ASYNC_FLUSH
闪退问题所在2:

Master的监听端口都为10911,Slave的监听端口需与Master不同,否则会因端口占用导致Slave启动不了;Slave的端口都为:11011 (listenPort=11011)

闪退问题所在3:

(#problem3)Master与Slave的文件存储路径不能相同,若相同,则主从文件存储冲突,导致1个服务器中某个Broker启动失败
我设置的:
Master的文件存储路径都为:/store-a1
Slave的文件存储路径都为:/stroe-b1

闪退问题所在4:

Slave节点的ID问题,闪退会提示Exit 253;
一般大多人都设置为:brokerId=1,大于0就可以了,我原本也是如此,但是!这个RocketMQ有点瞎,认为这个Id小于等于0…因此我一不做二不休直接给Id个50,这就解决了闪退问题

至于我是如何发现这个RocketMQ这个Bug的(即问题4),在于启动Broker的命令中的1个细节
(1) 一开始看broker.log,没用
tail -200f ~/logs/rocketmqlogs/broker.log

看里面描述,连接都是没问题的,只有一些不明所以的内容启动失败,查来查去也查不出个所以然;那我就去找从节点的启动日志,找不到啊屑,据此开始打开另一个世界的大门,我想到Broker的启动命令

(2) 先贴出启动Broker从节点的命令
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver2:9876" 1>/dev/null 2>&1 &
(3) 注意其中的1个细节
1>/dev/null 2>&1 &

这个部分本身是我为了解决使用nohup时出现的:

nohup: ignoring input and appending output to 'nohup.out'
nohup: 忽略输入并把输出追加到nohup.out

添加上就不会出现了

这个细节的大致意思是:通过nohup的内容所产生的文件扔到/dev/null中,相当于扔到黑洞中,产生啥文件都给你吞掉

了解了这个细节的作用后,我就想,那我把产生的文件输出来,里面应该有启动日志,那我不是就知道问题出在哪里了吗?

(4) 修改启动命令,以输出日志
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver2:9876" >/root/logs/rocketmqlogs/broker-b-s.log 2>&1 &

我将该服务器启动Broker的日志内容输出到/root/logs/rocketmqlogs/broker-b-s.log之中

PS:解决问题后记得把自个输出的这些log文件删掉,以免出现其他问题

(5) 查看日志
tail -200f ~/logs/rocketmqlogs/broker-b-s.log

得出的答案是:

Slave's brokerId must be > 0

看了一脸问号…嫌我小?我得让RocketMQ康康什么叫大,给了个50

(6) RocketMQ部分源码

brokerId判断的源码,有兴趣可以看一下,没兴趣就跳过

// 根据broker角色设置brokerId值,0为master,大于0为slave
switch (messageStoreConfig.getBrokerRole()) {
    case ASYNC_MASTER:
    case SYNC_MASTER:
        brokerConfig.setBrokerId(MixAll.MASTER_ID);
        break;
    case SLAVE:
        if (brokerConfig.getBrokerId() <= 0) {
            System.out.printf("Slave's brokerId must be > 0");
            System.exit(-3);
        }

        break;
    default:
        break;
}

(二) 服务器2

1、Master2,即broker-b.properties

只说修改的配置文件内容,其他不写了:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字
brokerName=broker-b
#0: Master; >0: Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#broker启动地址,rocketmq默认内网启动
brokerIP1=192.168.1.2
#BrokerHAIP地址,供slave同步消息的地址
brokerIP2=192.168.1.2
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/soft/rocketmq-4.9.0/store-b2
#commitLog 存储路径
storePathCommitLog=/usr/local/soft/rocketmq-4.9.0/store-b2/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/soft/rocketmq-4.9.0/store-b2/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/soft/rocketmq-4.9.0/store-b2/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/soft/rocketmq-4.9.0/store-b2/checkpoint
#abort 文件存储路径
abortFile=/usr/local/soft/rocketmq-4.9.0/store-b2/abort
#限制的消息大小
maxMessageSize=65536
#Broker角色: ASYNC_MASTER(异步复制Master)、SYNC_MASTER(同步双写Master)、SLAVE(从节点)
brokerRole=SYNC_MASTER
#刷盘方式: ASYNC_FLUSH(异步刷盘)、SYNC_FLUSH(同步刷盘)
flushDiskType=SYNC_FLUSH

2、Slave1,即broker-a-s.properties

改配置:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字
brokerName=broker-a
#0: Master; >0: Slave
brokerId=70
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#broker启动地址,rocketmq默认内网启动
brokerIP1=192.168.75.131
#broker的HAIP地址(供Slave同步消息的地址)
brokerIP2=192.168.75.131
#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/soft/rocketmq-4.9.0/store-a2
#commitLog 存储路径
storePathCommitLog=/usr/local/soft/rocketmq-4.9.0/store-a2/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/soft/rocketmq-4.9.0/store-a2/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/soft/rocketmq-4.9.0/store-a2/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/soft/rocketmq-4.9.0/store-a2/checkpoint
#abort 文件存储路径
abortFile=/usr/local/soft/rocketmq-4.9.0/store-a2/abort
#限制的消息大小
maxMessageSize=65536
#Broker角色: ASYNC_MASTER(异步复制Master)、SYNC_MASTER(同步双写Master)、SLAVE(从节点)
brokerRole=SLAVE
#刷盘方式: ASYNC_FLUSH(异步刷盘)、SYNC_FLUSH(同步刷盘)
flushDiskType=ASYNC_FLUSH

在配置RocketMQ时,感觉它总是没事抽抽风,冲突一下,我索性把服务器2的存储路径和Id改得和服务器1的不一样,服务器2的从节点Id我给了个70

至此,配置全部结束,开始启动!

七、启动RocketMQ节点(注意启动顺序)

1、进入bin目录

我使用的启动方法需要进入RocketMQ的bin目录,其实大同小异

(1) 服务器1
cd /usr/local/soft/rocketmq-4.9.0/bin/
(2) 服务器2

与1的一致

2、启动NameServer节点

IP不一致而已

(1) 服务器1
nohup ./mqnamesrv -n rocketmq-nameserver1:9876 1>/dev/null 2>&1 &
(2) 服务器2
nohup ./mqnamesrv -n rocketmq-nameserver2:9876 1>/dev/null 2>&1 &

毕竟是双主双从,因此要先把2个服务器的NmaeServer先启动好,不然2个服务器各自的Broker怎么与对方服务器的NmaeServer连接

3、启动Broker的Master与Slave

(1) 服务器1

Master1:

nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver2:9876" 1>/dev/null 2>&1 &

需要2个NameServer的IP+Port的原因:Broker启动,要与所有NameServer保持长连接,才能定时发送心跳包[包含:当前Broker信息(IP+Port等)、Topic信息];注册成功后,NameServer集群中就有Topic与Broker的映射信息
Slave2:

nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver2:9876" 1>/dev/null 2>&1 &
(2) 服务器2

Master2:

nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver2:9876" 1>/dev/null 2>&1 &

Slave1:

nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n "rocketmq-nameserver1:9876;rocketmq-nameserver1:9876" 1>/dev/null 2>&1 &

4、验证成功与否

jps

若都出现:

Jps
BrokerStartup
BrokerStartup
NamesrvStartup

则说明成功,出现的顺序不重要

八、关闭节点

要先关闭broker

./mqshutdown broker
./mqshutdown namesrv
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HellHellNo/article/details/118544788

mysql主主同步的配置_cc-梅的博客-爱代码爱编程_mysql主主同步

主主同步事实上就是在主从的基础上,将原先的从机当主机,主机当从机再配置一遍主从同步,具体操作如下:   注意:配置过程中个人使用的指令所需要的权限比较高,主要是因为个人习惯了用root账户操作,如果使用自己创建的账户(输入指令时是‘$’ 而非‘#’,‘#’表示系统账户)可能会说权限不足,请自行切换到root用户或使用可执行的其他等效指令   1.在

rocketmq源码阅读(3)-broker启动-爱代码爱编程

1、首先找到BrokerStartup启动的主类         该类在broker模块中,类全路径为org.apache.rocketmq.broker.BrokerStartup,我们在启动Broker的时候只需要运行该类就行了。 2、从main方法入口看broker启动都做了哪些事情? public static void main(Strin

RocketMQ关于Broker闪断故障排查【实战笔记】-爱代码爱编程

目录 一、问题描述 二、Broker日志分析 1.查看GC日志 2.查看Broker日志 三、系统监控分析 1.网络监控 2.磁盘IO监控 3.CPU监控 4.内存信息 5.集群流量 四、Linux系统日志分析 五、解决方案 1.调整内核参数 2.参数含义说明 六、原理分析

启动RocketMQ中broker失败的原因二-爱代码爱编程

承接上一篇Broker启动失败原因,今天在学习RocketMQ过程中,Broker启动又双叒叕出问题了,在排除了上一篇文章中描述的JVM配置问题之外,今天经过数个小时的排查,终于搞定这个问题,现将问题记录于此,避免小伙伴踩坑 如果文章有错,欢迎大家指正。本人联系方式 jenson_97@163.com 集群架构模式 我的集群搭建采用的是双主双

centos8.0下安装rocketMq4.7+openJDK11.0以及broker启动失败问题排查-爱代码爱编程

背景:rocketMQ4.7默认支持jdk1.8环境:linux(centos8.0),rocketMQ4.7,openJDK11.0 首先更改rocketMQ启动脚本runbroker.sh,runserver.sh,tools.sh(目录:///mq/rocketmq-all-4.7.0-bin-release/bin):主要涉及:CLASSPATH和

rocketmq双主双从同步模式搭建集群-爱代码爱编程

windows系统下两台centos7搭建rocketmq双主双从同步的集群时需要分别在两台机器的rocketmq安装目录下conf中的broker中配置当前连接的外网IP,就可以进行通信了 错误日志 2020-09-10 14:32:00 WARN ShutdownHook - unregisterBroker Exception, rocketmq

Docker容器异常退出Exit(253)-爱代码爱编程

容器异常退出,状态码为253 我遇到的情况为容器内挂载到docker卷的目录不存在,导致挂载失败,容器异常退出 具体场景 使用rocketmq官方工具制作指定版本镜像,使用docker-compose启动nameSrv1+MasterBroker1+SlaveBroker*1,将broker的日志目录和存储目录挂载在docker卷上,具体docker

RocketMQ-环境部署-2主2从部署-同步双写-异步刷盘-详细步骤图解-爱代码爱编程

【RocketMQ学习目录】 【图形化界面控管理制台】 RocketMQ-环境部署-2主2从部署-同步双写-异步刷盘-详细步骤图解 【RocketMQ学习目录】【图形化界面控管理制台】1.环境准备(如图)2.修改数据存储目录(如图)3.修改启动参数(如图)4.修改配置文件(如图)4.1.统一配置到四台服务器4.2.统一修改四台服务器5.启动服务

关于LInux中RocketMQ双主双从同步复制集群说明-爱代码爱编程

1. 部署准备 作为测试环境,我们使用两台虚拟机来部署双主双从环境,具体结构如下: 整个集群由两个 name server 实例和四个 broker 实例组成 name server: 两台服务器分别启动两个name serverbroker A 主从: 服务器1部署 broker A 主服务服务器2部署 broker A 从服务broker B

启动RocketMQ中broker失败的原因-爱代码爱编程

自己在linux环境中搭建的RocketMQ集群,在学习RocketMQ过程中,启动NamesrvStartup成功,启动第一个broker master成功,启动第二个broker slave则一直失败。 查找了很久终于找到原因,在此记录。 存在的问题:在配置双主双从集群时,配置文件中相关的存储路径需要区分,主节点、从节点的数据不能保存在同一个目录下

CentOS 8通过Docker-Compose部署RocketMQ 4.8.0(解决Broker启动的Exit 253问题)-爱代码爱编程

1、docker-compose.yml 该文件创建在自己想要的目录中 version: "3.9" #我的Docker是20.0.+的,因此用最高的3.9 services: rmqnamesrv: image: foxiswho/rocketmq:4.8.0 #4.8.0没有区分namesrv和broker container_

RocketMQ-4.9.0安装(单机版)-爱代码爱编程

文章目录 1、安装JDK1.82、下载RocketMQ3、解压RocketMQ4、启动RocketMQ4.1、启动&关闭nameserver4.2、启动&关闭broker5、验证RocketMQ 1、安装JDK1.8 CentOS安装JDK的三种方法 2、下载RocketMQ 打开 RocketMQ 官方文档, 我们

CentOS7和8下安装RocketMQ Server-爱代码爱编程

1、下载 下载链接:https://rocketmq.apache.org/dowloading/releases/ 2、解压 unzip rocketmq-all-4.9.2-bin-release.zip 3、将解压目录移至/usr/local mv rocketmq-4.9.2/ /usr/local/ 4、运行 nameserver和broker的

rocketmq集群搭建_rocketmq集群环境搭建-爱代码爱编程

各角色介绍 Producer:消息的发送者,举例:发信者 Consumer:消息的接收者,举例:收信者 Broker:暂存和传输消息,举例:邮局 NameServer:管理Broker,举例:各个邮局的管理机构 Topic:区分消息的种类,一个发送者可以发送消息给一个或多个Topic,一个消息的接收者可以订阅一个或者多个Topic消息 Me