栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

kafka总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kafka总结

kafka架构图 kafka message有3部分组成 1.offset 表示message在partition中的偏移量 是一个逻辑上的值 唯一确定了Partition中的一条message 可以简单的认为是一个id 2.MessageSize 表示message内容data的大小 3.data message的具体内容 message通过topic进行分类 在整个kafka架构中,生产者和消费者采用发布和订阅的模式 生产者生产消息 消费者消费消息 他两各司其职 并且都是面向topic topic是一个逻辑上的概念 partition是一个物理上的概念 每个Partition对应一个log文件 该log文件中存储的就是Producer生产的数据 Producer生产的数据会不断的追加到log文件末端 且每条数据都有自己的offset 消费者组中的每一个消费者 都会实时记录自己消费到了哪个offset 这样当出现故障并恢复后 可以从这个offset位置继续进行消费 避免漏掉数据或者重复消费 文件存储机制 文件存储结构及命名规则 在kafka设计之初 考虑到生产者生产的消息不断追加到log文件末尾后导致log文件过大的情况 所以采用了分片和索引机制 具体来说就是将每个partition分为多个segment 每个segment对应 三个文件 .index .log .timeindex(早起版本中没有) 其中.index .log文件位于一个文件夹下 该文件夹的命名规则为 topic名称+分区序号 例如gzlTopic这个topic有两个分区 则对应的文件夹为 gzlTopic-0,gzlTopic-1 文件夹下的文件如截图 通过这个文件夹下有两个log,我们可以得出结论 这个partition有2个segment kafka存储机制图 文件关系 index文件和log文件的关系 index文件存储大量的索引信息 log文件存储大量的数据 索引文件中的元数据指向对应数据文件中的message的物理偏移地址 使用offset查找message 每一个segment的文件名是上一个segment最后一条消息的offset 所以当需要查找一个指定offset 的message 通过在所有segment文件名中进行二分查找就能找到他归属的segment 再在其index文件中找到其对应到log文件上的物理位置,就能拿到message
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号