RocketMQ 5.0中DLedger Controller模式如何实现?

2026-05-28 01:120阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1685个文字,预计阅读时间需要7分钟。

RocketMQ 5.0中DLedger Controller模式如何实现?

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 模式。下面就来聊聊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 后才能返回,副本越多可能耗时也可能越长。
阅读全文