Kafka消息的存储机制
【摘要】 Kafka消息的存储机制Kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。都是持久化到磁盘,采用零拷贝技术。1、高效检索分区下面,会进行分段操作,每个分段都会有对应的索引,这样就可以根据 offset二分查找定位到消息在哪一段,根据段的索引文件,定位具体的message。2、分区副本可用性(leader选举,zk来协调)如果...
Kafka消息的存储机制
Kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。都是持久化到磁盘,采用零拷贝技术。
1、高效检索
分区下面,会进行分段操作,每个分段都会有对应的索引,这样就可以根据 offset二分查找定位到消息在哪一段,根据段的索引文件,定位具体的message。
2、分区副本可用性(leader选举,zk来协调)
如果 leader宕机,选出了新的 leader,而新的leader并不能保证已经完全同步了之前leader的所有数据,只能保证HW(高水位设置)之前的数据是同步过的,此时所有的 follower都要将数据截断到HW的位置,再和新的leader同步数据,来保证数据一致。
当宕机的 leader 恢复,发现新的leader 中的数据和自己持有的数据不一致,此时宕机的leader 会将自己的数据截断到宕机之前的hw位置,然后同步新leader
的数据。宕机的leader
活过来也像follower一样同步数据,来保证数据的一致性。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)