kafka--kafka基础概念-ISR详解

kafka基础概念-ISR详解

ISR详解-ISR

主要是讲 主 往 从同步中的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RaXjr6f7-1692451042980)(007-kafka基础概念-ISR详解.assets/image-20230819205621891.png)]

当绿色P1接收到写入的数据,要同步到紫色的P1S1和P1S2

如何保证一致性呢?

使用In Sync Replicas 也就是ISR概念

为什么不一致的?

因为P1S1同步数据 可能花费 50ms P1S2可能花费60ms

同步完的进入ISR集合,

同步时间是可以设置规定时间的(容忍时间)

没有在规定时间同步完的进入OSR集合

绿色部分主要监督 紫色部分有没有超时

ISR详解—HW–LEO

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pFwABWhJ-1692703557583)(008-kafka基础概念-ISR详解-2.assets/image-20230821204304891.png)]

HW: High Watermark,高水位线,消费者只能最多拉取到高水位线
的消息
LEO: Log End Offset, 日志文件的最后一条记录的offset (偏移量)
ISR集合与HW和LEO直接存在着密不可分的关系


整个的这一条(0-9)可以看做 partition

消费者真正能消费的是0-5,但是6和6之后就能不消费

但是日志可能已经写到9了

为什么?

这个是跟ISR有关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6xEjnIVZ-1692703557584)(008-kafka基础概念-ISR详解-2.assets/image-20230821205555833.png)]

比如现在生产者要将3、4写入(如图-1),按照规矩呢,3、4首先会写到leader中,(如图-2)

此时可能follow1和follow2,没有将3、4同步过来,也就可能入图3的情况

kafka要求必须全部同步了,HW才能升高

这时 HW就不能升高

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnvP1IV1-1692703557585)(008-kafka基础概念-ISR详解-2.assets/image-20230821205935722.png)]

猜你喜欢

转载自blog.csdn.net/weixin_39213232/article/details/132384391