在 Doris 中,Raft 协议主要通过管理和同步 FE(Frontend)节点的元数据来实现集群的高可用性,确保即使部分节点故障,系统仍能持续提供服务并保障数据一致性。其核心实现机制如下:
一、Raft 在 FE 元数据管理中的应用
1.1 元数据高可用保障
FE 节点分为 Leader、Follower 和 Observer 三种角色。
Leader 节点:负责处理所有元数据变更请求(如建表、数据导入等)并向 Follower 同步日志。
Follower 节点:实时复制 Leader 的日志,参与 Leader 选举投票。
Observer 节点:仅异步同步元数据,不参与选举,用于扩展读能力。
Raft 协议确保所有元数据变更以日志形式在 Leader 和 Follower 之间复制,达成多数派(Quorum)确认后才提交生效,防止数据丢失或不一致。
1.2 自动故障转移(Leader 选举)
当 Leader 节点宕机或网络失联时,Follower 节点会触发选举超时机制,发起新一轮 Leader 选举。
选举基于 Raft 的 投票机制:候选节点需获得超过半数的 Follower 投票才能成为新 Leader。
新 Leader 产生后,继续处理元数据请求并同步日志,实现秒级故障切换,服务不中断。
1.3 日志复制与数据一致性