Rockermq Dledger集群搭建 RocketMQ-on-DLedger Group 是指⼀组「相同名称的 Broker」,⾄少需要 3 个节点,通过 「Raft」 ⾃动选举出⼀个 Leader,其余节点作为 Follower,并在 Leader 和 Follower 之间复 制数据以保证⾼可⽤。 RocketMQ-on-DLedger Group 能⾃动容灾切换,并保证数据⼀致。 RocketMQ-on-DLedger Group 是可以⽔平扩展的,也即可以部署任意多个 RocketMQ-onDLedger Group 同时对外提供服务。 1. 配置 RocketMQ-on-DLedger Group 上⾯说到,每组 RocketMQ-on-DLedger 需要⾄少3台机器,现在我们在原来的基础上还需要 添加2台机器,每组添加⼀台。 进⼊dledger配置⽂件⽬录下看⼀眼: cd rocketmq/conf/dledger && ll -rw-r--r--@ 1 root root 1.1K 12 4 2020 broker-n0.conf -rw-r--r--@ 1 root root 1.1K 12 4 2020 broker-n1.conf -rw-r--r--@ 1 root root 1.1K 12 4 2020 broker-n2.conf 「 broker-a 的 n0 节点配置」 brokerClusterName = RaftCluster brokerName=broker-a listenPort=30911 namesrvAddr=192.168.2.170:9876;192.168.2.171:9876;192.168.2.172:9876 storePathRootDir=/tmp/rmqstore/broker-a storePathCommitLog=/tmp/rmqstore/broker-b/commitlog enableDLegerCommitLog=true dLegerGroup=broker-a dLegerPeers=n0-192.168.2.170:40911;n1-192.168.2.172:40911;n2192.168.2.174:40911 ## must be unique dLegerSelfId=n0 sendMessageThreadPoolNums=4 broker-a的n1、n2节点配置类似,注意修改 dLegerSelfId 配置项。 「 broker-b 的 n0 节点配置」 brokerClusterName = RaftCluster brokerName=broker-b listenPort=30911 namesrvAddr=192.168.2.170:9876;192.168.2.171:9876;192.168.2.172:9876 storePathRootDir=/tmp/rmqstore/broker-b storePathCommitLog=/tmp/rmqstore/broker-b/commitlog enableDLegerCommitLog=true dLegerGroup=broker-b dLegerPeers=n0-192.168.2.171:40911;n1-192.168.2.173:40911;n2192.168.2.175:40911 ## must be unique dLegerSelfId=n0 sendMessageThreadPoolNums=4 全部配置好以后: 4. 启动集群 4.1 启动nameserver(192.168.2.170,192.168.2.171,192.168.2.172) nohup sh rocketmq/bin/runserver.sh org.apache.rocketmq.namesrv.NamesrvStartup > rocketmq/bin/namesrv.log 2>&1 & 4.2 启动broker 启动命令: nohup sh rocketmq/bin/runbroker.sh org.apache.rocketmq.broker.BrokerStartup -c rocketmq/conf/dledger/broker-n0.conf > rocketmq/bin/broker.log 2>&1 & 注意配置⽂件与主机的对应。