自学内容网 自学内容网

kafka (至关重要)多副本相关一些关键概念

写在前面

本文介绍了kafka 中几个概念,这几个概念对理解kafka 多副本之间保证数据一致性、可靠性至关重要。

kafka 所有分区的消息都是保存的日志中,读者可以带着下面两个问题阅读本文

1. 新消息该往哪写?

2. 如何衡量副本的同步进度

3. 选举时依据什么选出最佳Leader

几个概念介绍

副本是相对于分区的,每个分区都有自己的副本,并且这些副本分布在不同Broker上。

AR

分区的所有副本集合,包含leader副本。

功能与作用:

kafka 分区分布在不同Broker 上,副本是kafka高可用的关键

ISR

ISR是指与leader副本保持同步的副本集合,也包含leader副本本身。ISR 中的副本数据与主副本是一致的

ISR 是不断变化的,当ISR 中副本滞后 replica.lag.time.max.ms时,该副本就会从ISR中剔除。有新满足条件的副本也会加入到ISR中

  • 只有ISR中的副本才可以参与选举和数据恢复,而ISR中数据是一致可靠的,所以kafka 集群是可靠性和一致性

HW

HW (High Watermark) 代表某分区中所有副本都确认写入的最高偏移量(Offset)。它代表了已经成功复制到所有ISR集合中副本的消息的位置。

HW之前的消息都是可靠的、一致的,消费者只能读取到HW之前的消息。

HW确保了消费者不会读取到未完全同步消息

LEO

LEO(Log End Offset),即日志末端偏移量,即一个分区中消息日志的最后一个位置,也是下一条消息要写入的位置。随着消息不断写入,LEO不断地动态变化。

通过比较各副本的LEO,可以判断它们的同步进度。选举时,选择最大的LEO副本,可以最大程度保证数据的完整性


原文地址:https://blog.csdn.net/happycao123/article/details/142497342

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!