34_kafka三
1. kafka内核原理 1.1 ISR机制 问题:仅依靠 多副本机制 能保证Kafka的 高可用性 ,但是能 保证数据不丢失 吗? 不行,因为如果leader宕机,但是leader的数据还没同步到follower上去,此时即使选举了follower作为新的leader,当时刚才的数据已经丢失了。 ISR是:in-sync replica,就是跟leader partition保持同步的follower partition的数量,只有处于ISR列表中的follower才可以在leader宕机之后被选举为新的leader,因为在这个ISR列表里代表他的数据跟leader是同步的。 如果要保证写入kafka的数据不丢失,首先需要保证ISR中 至少有一个follower ,其次就是在一条数据写入了leader partition之后,要求必须复制给ISR中所有的follower partition,才能说代表这条数据已提交,绝对不会丢失,这是Kafka给出的承诺 1.2 HW&LEO原理 1.2.1相关概念 LEO (last end offset,日志末端偏移量) 标识当前日志文件中下一条待写入的消息的offset。 举一个例子,若LEO=10,那么表示在该副本日志上已经保存了10条消息,位移范围是[0,9]。 HW ( Highwatermark,俗称高水位)