DEV Community

testted123456
testted123456

Posted on • Updated on

kafka文件存储

一、kafka架构

Image description

  1. producer:生产者。producer产生的数据追加到partition的log文件中,每条数据有自己的offset

  2. consumer:消费者

  3. consumer group:消费者组;对应一个partition,一个消费组中只能有一个consumer来消费

  4. broker:一个kafka服务就是一个broker

  5. topic:逻辑概念;代表一类消息

  6. partition:分区。partition是物理上的概念,每个partition对应一个log文件。
    一个topic可以分到多个partition上,每个partition是有序的队列,但不能保证topic全局有序

  7. replica:副本。一个topic在一个partition有一个leader replica和多个follower replica

Image description

二、工作流

Image description

三、文件存储

Image description

Image description

Image description

Image description

  • log文件已1G为临界点,超过1G就会创建新文件

  • 一个segement包含一个log文件、一个index文件;文件结尾是文件中第一条消息的offset-1

  • 根据offset (1560140921)定位数据:

  1. 定位到00000000001560140916.log、00000000001560140916.index文件

  2. 1560140921 - 1560140916 + 1 = 5

  3. 根据上一步的5找到index文件中序号为5对应的地址456

  4. 根据456找到log文件中对应的消息

参考:
https://blog.csdn.net/godlovedaniel/article/details/120113667
https://blog.csdn.net/cao1315020626/article/details/112590786

Top comments (0)