kafka
2022-10-31 21:51:21 4 举报
登录查看完整内容
kafka笔记
作者其他创作
大纲/内容
总结:1、topic中pariition分段segment,容易定期删除或者是已经消费完的文件。2、索引信息可以快速定位message和获取response大小。3、通过index元数据全部映射到memory,可以避免segment file的io操作4、索引文件惜输存储,可以大幅度降低index文件元数据占用的空间大小。
.log(消息)
关键指标
segment0
partition2
Y
.index(元数据)
读msg:
物理存在、有序列表、offest为消息标识id
kfk
kfk读磁盘,较少定期写磁盘,故操作磁盘高效,高效原因
异步线程
分区都是目录
page-cache(物理内存)
1、查找segment-file、二分法查找
写msg:
N:才会出现读磁盘的情况
基本概念
topicA1个分区
作用:方便老的segment文件被删除
partition1
磁盘
找消息
topic中partition存储分布
刷磁盘
kfk缺点:重复消息。Kafka 只保证每个消息至少会送达一次,虽然几率很小,但一条消息有可能会被送达多次。 消息乱序。虽然一个Partition 内部的消息是保证有序的,但是如果一个Topic 有多个Partition,Partition 之间的消息送达不保证有序。 复杂性。Kafka需要zookeeper 集群的支持,Topic通常需要人工来创建,部署和维护较一般消息队列成本更高
分布式
topicB0
特点
2、已经找到对应的log|offset文件了,顺序查找对象offset的消息就好了
partition中如何根据offset寻找message
有序列表
partition中文件存储方式
segment0+offset
broker
如何实现
topicB俩分区
segment1
socket发送消息
多副本
java-heap
大小相等消息数量不一定相等
多分区
segment2
topic
注意:由于segment文件命名是+offset结尾的,故下一个文件的起始消息偏移量为offset+1
segment0+offset+offset
基于zookeeper协调
topicB1
topicA0
文件存储机制
partition中segment文件存储结构
收藏
收藏
0 条评论
回复 删除
下一页