@kafka-文件存储
kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。topic是逻辑上的概念,partition是物理上的概念,每一个partition对应一个log文件,该log文件中存储的就是producer生产的数据。
producer生产的数据会不断的追加到该log文件末端,且每条数据都有自己的offset。
由于生产者生产的数据会不断地追加到log文件末端,为了防止log文件过大导致数据定位效率低下,kafka采取了分片和索引机制。(定位方法:用二分法找到是哪一个index,然后从index中找到要访问的那条消息的那条数据,然后根据这条数据的内容去log文件中把这条数据定位出来。)将每个partition分为多个segment。每个segment对应两个文件:、index文件和、log文件。这两个文件以当前segment的第一个消息的offset命名。index文件中存储的是大量的索引信息,log文件中存储的是大量的数据。