Kafka高效文件存储设计特点:
1、Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。
2、通过索引信息可以快速定位message和确定response的最大大小。
3、通过index元数据全部映射到memory,可以避免segment file的IO磁盘操作。
4、通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间大小。
5、零拷贝技术的使用。
Kafka部分名词解释如下:
Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。
Topic:一类消息,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发。
Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。
Segment:partition物理上由多个segment组成。
offset:每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中。partition中的每个消息都有一个连续的序列号叫做offset,用于partition唯一标识一条消息。
文件存储架构
首先,topic建立时&#