Kafka 日志复制协议探索

Kafka采用ISR日志复制模式,而非多数投票机制,以实现高可用性和一致性。ISR保证每个分区的副本同步,仅ISR内的副本可成为新leader。相比之下,Raft协议在某些场景下可能造成更高的副本数需求和延迟,适合实例级别的事务同步,而Kafka的ISR设计更适合大规模数据同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日志复制模式: 大多数投票(Quorums),同步复制队列(ISRs)和状态机模式


kafka高可用的核心思想是建立在日志同步的机制上. 日志同步在分布式数据系统中是最常见同时极为重要环节之一,市面上有许多已实现的算法供参考. 其中状态机模型常被分布式系统用于实现日志复制来达到分布式系统的状态一致性

日志同步机制既要保证在分布式系统中数据的一致性,也要保证数据输入的顺序性. 当然有许多方法能实现这些功能,其中最为简单高效的处理方式是集群中选出一名leader来处理数据写入的顺序性,只要leader状态是存活的,follower副本只需按leader的写入顺序复制这些数据以达到集群内数据的一致性.

通常情况,只要leader不宕机我们是不用关心follower同步的问题,写入只发生在leader节点,副本节点只需按序复制leader日志即可. 当leader服务宕机,此时集群需要从follower节点群中选择新的leader节点, 此时这些follower节点可能存在未能同步到leader最新日志或者服务同时宕机的情形,但系统必须保证能选出具有最新日志数据的follower节点作为leader.事务日志复制算法最基本保证要做到:当客户端提交事务返回成功ack时,此时若leader宕机不可用,新选举的leader事务日志里必须包含客户端提交过的事务日志. 这里有个折中的情况:leader需要等待大多数follower返回日志复制ack信息,才能对外发布该事务消息,一定程度上增大了事务延迟,但有利的方面是当leader不可用时,更多的follower节点可以被选作leader,能加快选举的过程降低系统不可用时间.

大多数投票机制(majority vote):需要同时满足事务提交确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值