ISR,OSR,AR,LW,HW,LEO,ACK原理



ack 为-1 时 是集群设置 是严格同步的 如果flower 10s内没有同步leader的最新数据, 那么就会将它剔除到osr中,而能在10s内同步到数据的flower中则继续在isr中同步leader的后续数据 默认10s发送一次心跳给leader
consumer能消费的时producer生产的 实时性的
ack 为1 时 provider 向broker中的leader发送数据时 ack就返回了 producer就会继续推送后面的数据
那么flower 就不一定能够同步到实时的数据
那么 leader 在收到producer生产的时候不收到前面数据是否阻塞 logEndOffset(LEO)当前日志记录leader中producer推送的位置
但是consumer消费的是leader 中已经同步的数据 虽然leader 不会阻塞 但是能够成功被consumer消费的是那些flower同步leader中的数据的数据
而那些刚进来还没同步的数据是不能够访问的 就好比水桶理论,那么那个同步flower的 (高水位)HightWaterMark
虽然ack=1时 会快于=-1 但是一旦leader 掉线 那么会从flower中选出一个leader 但是flower 的数据根本就没有同步到之前leader 那么多的数据, 此时就会造成数据的丢失 不安全



浙公网安备 33010602011771号