type
status
date
slug
summary
tags
category
icon
password
dledger模式的优点是能够解决master-slave模式存在的一些问题,包括自动选主、高可用性以及在旧集群中,如果master节点故障,从节点无法接管写入功能的问题。
1. 部署新集群(非升级集群)
首先启动nameserver:
每个集群至少准备三台机器(Dledger集群基于raft实现),并针对每台机器创建相应的配置文件。
第一台 broker-no.conf:
第二台 broker-n1.conf:
第三台 broker-n2.conf:
关键配置介绍:
参数 | 含义 | 举例 |
enableDLegerCommitLog | 是否启动DLedger | true |
dLegerGroup | DLedger Raft Group的名字,建议和brokerName保持一致 | RaftNode00 |
dLegerPeers | DLedger 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 |
依次启动三个broker:
2. 升级master-slave集群为Dledger集群
在进行Dledger集群升级之前,通常会先部署多组master-slave实现高可用性。
下面介绍如何将master-slave模式升级为Dledger模式:
首先停止老的master和slave节点,因为Dledger的commitlog和旧的commitlog数据结构不同,所以在升级之前需要确保master和slave节点的commitlog一致。
由于Dledger集群基于raft协议进行选举,所以需要至少三台机器才能实现容灾,因此需要增加一台机器,并将commitlog和conf目录下的文件拷贝到新机器。
接下来,参考上述新集群部署的配置文件,修改配置文件。
然后依次启动三台机器。
- 作者:奥利弗
- 链接:https://www.aolifu.org/article/rocketmq-dledger
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。