Kafka, 大数据

kafka-05 kafka架构深入

kafka工作流程及文件存储机制

工作流程

  • 创建副本,leader也算副本之一,且相同分区的副本不会在同一台服务器上
  • 上图012345表示偏移量
  • follower会主动找到leader把数据备份过来
  • kafka中的消息是以topic进行分类的
  • topic是逻辑上的概念,而partition是物理上的概念
  • 每个partition对应一个log文件,该log文件中存储的就是producer产生的数据。
  • producer产生的数据会被不断追加到该log文件末端,且每条数据都有自己的offset
  • 消费者组中的每个消费者,都会实时记录自己消费到了哪个offset,以便出错恢复时,从上次的位置继续消费

kafka文件存储机制

  • 为防止log文件过大导致数据定位效率低,kafka采取了分片和索引机制,将每个partition分为多个segment(分片,片段)
  • 每个segment对应两个文件.index文件和.log文件,位于一个文件夹下,该文件夹的命名规则topic名称+分区序号
    • first-0 first-1 first-2
  • index和log文件以当前segment的第一条消息的offset命名

index文件和log文件

  • 根据index文件名确定offset3在哪个index文件
  • 找到index文件中offset3的位置存储的seek:756 以及数据大小 即可获取到message-3
    • seek指物理数据偏移地址