栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

5分钟搭建rocketmq 4.8集群

5分钟搭建rocketmq 4.8集群

5分钟搭建rocketmq 4.8集群
前言

在rocketmq之前的模式中,只有master/slave一种部署方式,一组 broker 中有一个 Master ,有零到多个 Slave,Slave 通过同步复制或异步复制的方式去同步 Master 数据。但这样的部署模式,有一定的缺陷。比如故障转移方面,如果主节点挂了,还需要人为手动进行重启或者切换,无法自动将一个从节点转换为主节点。所以这里就引入了 RocketMQ-on-DLedger Group。

RocketMQ-on-DLedger Group 是指一组相同名称的 Broker,至少需要 3 个节点,通过 Raft 自动选举出一个 Leader,其余节点 作为 Follower,并在 Leader 和 Follower 之间复制数据以保证高可用。
RocketMQ-on-DLedger Group 能自动容灾切换,并保证数据一致。
RocketMQ-on-DLedger Group 是可以水平扩展的,也即可以部署任意多个 RocketMQ-on-DLedger Group 同时对外提供服务。

具体原理看这:

https://blog.csdn.net/trntaken/article/details/105694384

1. 新集群部署 1.1 编写配置

每个 RocketMQ-on-DLedger Group 至少准备三台机器(本文假设为 3)。

ip主机名操作系统
10.16.100.60mq1CentOS 7
10.16.100.62mq2CentOS 7
10.16.100.63mq3CentOS 7

编写 3 个配置文件,建议参考 conf/dledger 目录下的配置文件样例。
关键配置介绍:

name含义举例
enableDLegerCommitLog是否启动 DLedgertrue
dLegerGroupDLedger Raft Group的名字,建议和 brokerName 保持一致RaftNode00
dLegerPeersDLedger Group 内各节点的端口信息,同一个 Group 内的各个节点配置必须要保证一致n0-127.0.0.1:40911;n1-127.0.0.1:40912;n2-127.0.0.1:40913
dLegerSelfId节点 id, 必须属于 dLegerPeers 中的一个;同 Group 内各个节点要唯一n0
sendMessageThreadPoolNums发送线程个数,建议配置成 Cpu 核数16

mq1的配置 conf/dledger/broker-n0.conf

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30911
namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
storePathRootDir=/tmp/rmqstore/node00
storePathCommitLog=/tmp/rmqstore/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
## must be unique
dLegerSelfId=n0
defaultTopicQueueNums=20
sendMessageThreadPoolNums=16
flushDiskType=ASYNC_FLUSH
transientStorePoolEnable=true
warmMapedFileEnable=true
slaveReadEnable=true
transferMsgByHeap=false
autoCreateTopicEnable=false 
brokerIP1=10.16.100.60

mq2的配置 conf/dledger/broker-n1.conf

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30921
namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
storePathRootDir=/tmp/rmqstore/node01
storePathCommitLog=/tmp/rmqstore/node01/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
## must be unique
dLegerSelfId=n1
defaultTopicQueueNums=20
sendMessageThreadPoolNums=16
flushDiskType=ASYNC_FLUSH
transientStorePoolEnable=true
warmMapedFileEnable=true
slaveReadEnable=true
transferMsgByHeap=false
autoCreateTopicEnable=false 
brokerIP2=10.16.100.62

mq3的配置 conf/dledger/broker-n2.conf

brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30931
namesrvAddr=10.16.100.60:9876;10.16.100.62:9876;10.16.100.63:9876
storePathRootDir=/tmp/rmqstore/node02
storePathCommitLog=/tmp/rmqstore/node02/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-10.16.100.60:40911;n1-10.16.100.62:40912;n2-10.16.100.63:40913
## must be unique
dLegerSelfId=n2
defaultTopicQueueNums=20
sendMessageThreadPoolNums=16
flushDiskType=ASYNC_FLUSH
transientStorePoolEnable=true
warmMapedFileEnable=true
slaveReadEnable=true
transferMsgByHeap=false
autoCreateTopicEnable=false 
brokerIP3=10.16.100.63
1.2 启动 1.2.1 启动nameserver

3台机器都执行

nohup sh mqnamesrv &
1.2.1 启动Broker

mq1

nohup sh bin/mqbroker -c conf/dledger/broker-n0.conf &

mq2

nohup sh bin/mqbroker -c conf/dledger/broker-n1.conf &

mq3

nohup sh bin/mqbroker -c conf/dledger/broker-n2.conf &
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/720430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号