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)!