RocketMQ 5.0中DLedger Controller模式如何实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1685个文字,预计阅读时间需要7分钟。
RocketMQ 5.0 已发布,新增了高可用模式 + DLedger Controller 模式。下面就来聊聊RocketMQ 5.0新增的这个模式。
背景:首先,我们需要了解DLedger Controller是为了解决什么问题。
为了解决分布式系统中数据一致性的问题。
RocketMQ5.0已经发布,在RocketMQ5.0新增了一个新的高可用模式 DLedger Controller 模式。下面就来聊一下RocketMQ5.0新增的这个模式。
1\. 背景
首先我们需要知道DLedger Controller 是为了解决什么问题,先来看一下之前版本的DLedger模式架构图:
在 DLedger 模式下,利用 Raft Commitlog 代替了原来的 Commitlog 了,使得 Commmitlog 具备了选举的能力,当 Master Broker 故障后,通过内部协商,从其他的 Slave Broker 中选出新的 Master,完成主备切换,同时 Raft 的算法也保证了 Commitlog 的一致性。但是存在一些缺点:
- 想要具备选举切换的能力,单组 Broker 内的副本数必须 3 副本及以上(Raft协议决定)
- 副本 ACK 需要严格遵循 Raft 协议多数派的限制,3 副本需要 2 副本 ACK 后才能返回,5 副本需要 3 副本 ACK 后才能返回,副本越多可能耗时也可能越长。
本文共计1685个文字,预计阅读时间需要7分钟。
RocketMQ 5.0 已发布,新增了高可用模式 + DLedger Controller 模式。下面就来聊聊RocketMQ 5.0新增的这个模式。
背景:首先,我们需要了解DLedger Controller是为了解决什么问题。
为了解决分布式系统中数据一致性的问题。
RocketMQ5.0已经发布,在RocketMQ5.0新增了一个新的高可用模式 DLedger Controller 模式。下面就来聊一下RocketMQ5.0新增的这个模式。
1\. 背景
首先我们需要知道DLedger Controller 是为了解决什么问题,先来看一下之前版本的DLedger模式架构图:
在 DLedger 模式下,利用 Raft Commitlog 代替了原来的 Commitlog 了,使得 Commmitlog 具备了选举的能力,当 Master Broker 故障后,通过内部协商,从其他的 Slave Broker 中选出新的 Master,完成主备切换,同时 Raft 的算法也保证了 Commitlog 的一致性。但是存在一些缺点:
- 想要具备选举切换的能力,单组 Broker 内的副本数必须 3 副本及以上(Raft协议决定)
- 副本 ACK 需要严格遵循 Raft 协议多数派的限制,3 副本需要 2 副本 ACK 后才能返回,5 副本需要 3 副本 ACK 后才能返回,副本越多可能耗时也可能越长。

