Rocket MQ 多主多从异步复制集群搭建

【摘要】RocketMQ 多主多从异步复制集群搭建。
参考:https://blog.csdn.net/momo898821/article/details/105386903

安装前准备

JDK8
RocketMQ 4.5.2

部署方式

RocketMQ有三种部署方式:
1、2m-2s-async。多主多从异步复制
2、2m-2s-sync。多主多从同步复制
3、2m-noslave。多主无从
本文介绍2m-2s-async多主多从异步复制集群安装方式,集群包含三台节点,各节点Broker分布情况:

节点 主服务 从服务
node1 broker-a broker-b-s
node2 broker-b broker-c-s
node3 broker-c broker-a-s
RocketMQ

1、解压 rocketmq-all-4.5.2-bin-release.zip

[root@ecs-5b25-0001 rocketmq-all-4.5.2-bin-release]# unzip  rocketmq-all-4.5.2-bin-release.zip
[root@ecs-5b25-0001 rocketmq-all-4.5.2-bin-release]# ll
total 44
drwxr-xr-x 2 root root  4096 Aug  2  2019 benchmark
drwxr-xr-x 3 root root  4096 Mar  7 17:24 bin
drwxr-xr-x 6 root root  4096 Jul 31  2019 conf
drwxr-xr-x 2 root root  4096 Aug  2  2019 lib
-rw-r--r-- 1 root root 17336 Jul 31  2019 LICENSE
-rw-r--r-- 1 root root  1338 Jul 31  2019 NOTICE
-rw-r--r-- 1 root root  4020 Jul 31  2019 README.md

添加环境变量到/etc/profile

export ROCKETMQ_HOME=/home/rocketmq/rocketmq-all-4.5.2-bin-release
export PATH=$PATH:$ROCKETMQ_HOME/bin

2、修改conf/2m-2s-async 下面的配置文件
我们要修改2m-2s-async目录下配置文件,按照三台节点分布情况,分别修改对应的配置文件
节点一:修改broker-a.properties、broker-b-s.properties
节点二:修改broker-b.properties、broker-c-s.properties
节点三:修改broker-c.properties、broker-a-s.properties
注:初始只有broker-a,broker-b四个文件,自行添加broker-c文件即可
broker-a.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
brokerIP1=192.168.0.175
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#文件磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/data/store-a
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/data/commitlog-a
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/data/consumequeue-a
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

broker-a-s.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10920
brokerIP1=192.168.0.32
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#文件磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/data/store-b
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/data/commitlog-b
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/data/consumequeue-b
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

broker-b.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10911
brokerIP1=192.168.0.173
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/hadmin/data/rocketmq/store-b
#commitLog 存储路径
storePathCommitLog=/home/hadmin/data/rocketmq/commitlog-b
#消费队列存储路径存储路径
storePathConsumeQueue=/home/hadmin/data/rocketmq/consumequeue-b
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

broker-b-s.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10920
brokerIP1=192.168.0.175
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/data/store-b-s
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/data/commitlog-b-s
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/data/consumequeue-b-s
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

broker-c.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-c
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10911
brokerIP1=192.168.0.32
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/data/store-c
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/data/commitlog-c
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/data/consumequeue-c
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

broker-c-s.properties配置文件内容:

#集群名
brokerClusterName=Data-Cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-c
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.0.173:9876;192.168.0.32:9876;192.168.0.175:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10920
brokerIP1=192.168.0.173
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/data/store-c-s
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/data/commitlog-c-s
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/data/consumequeue-c-s
#限制的消息大小
maxMessageSize=65536
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

3、启动RoketMQ集群
启动nameserver,三台节点分别执行启动命令:

nohup sh mqnamesrv > /home/rocketmq/logsmqnamesrv.log 2>&1 &

节点一启动broker-a,broker-b-s

//启动broker-a
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-a.properties > /home/rocketmq/logs/mqbroker-a.log 2>&1 &
//启动broker-b-s
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-b-s.properties > /home/rocketmq/logs/mqbroker-b-s.log 2>&1 &

节点二启动broker-b,broker-c-s

//启动broker-b
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-b.properties > /home/rocketmq/logs/mqbroker-b.log 2>&1 &
//启动broker-c-s
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-c-s.properties > /home/rocketmq/logs/mqbroker-c-s.log 2>&1 &

节点三启动broker-c,broker-a-s

//启动broker-c
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-c.properties > /home/rocketmq/logs/mqbroker-c.log 2>&1 &
//启动broker-a-s
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.5.2-bin-release/conf/2m-2s-async/broker-a-s.properties > /home/rocketmq/logs/mqbroker-a-s.log 2>&1 &

4、查看RoketMQ集群情况

[root@ecs-5b25-0001 ~]# mqadmin clusterList -n 192.168.0.173:9876
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
Data-Cluster      broker-a                0     192.168.0.175:10911    V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 -1.0000
Data-Cluster      broker-a                1     192.168.0.32:10920     V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 -1.0000
Data-Cluster      broker-b                0     192.168.0.173:10911    V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 -1.0000
Data-Cluster      broker-b                1     192.168.0.175:10920    V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 0.0897
Data-Cluster      broker-c                0     192.168.0.32:10911     V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 -1.0000
Data-Cluster      broker-c                1     192.168.0.173:10920    V4_5_2                   0.00(0,0ms)         0.00(0,0ms)          0 448643.22 0.0898

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容