Kafka消息的存储机制

举报
孙中明 发表于 2022/04/03 16:44:01 2022/04/03
【摘要】 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。