《深入理解kafka:核心设计与实现原理》读书笔记

391 阅读1分钟

一、初始kafka

kafka主要角色

  • 消息系统:partition消息顺序存储,与回溯
  • 存储系统:磁盘存储,可压缩
  • 流式处理:kafka stream

kafka体系结构

  • producer:生产者,包含序列化器、分区器、拦截器
  • consumer:消费者
  • broker:kafka节点,存储消息
  • zookeeper:存储集群元数据
  • topic:主题
  • partition:分区
  • replica:副本
  • AR=ISR+OSR
  • ISR是可靠性和高效性的权衡
  • HW:高水位,高水位之前的消息可被consumer消费
  • LEO:低水位,各个副本维护自己的低水位,即下一个要从leader副本同步的消息offset









二、生产者


  • 主线程:负责拦截、序列化、分区、消息累加,调用sender线程batch发送
  • sender线程:异步io发送

三、消费者


consumer group:每个paritiion会被每个消费者组中的一个consumer消费

反序列化器

拦截器

位移提交:rebalance后,可以继续消费,存储在zookeeper中

消费方式:pull方式,并且可以指定offset,回溯

四、日志存储


  • 分段存储
  • 稀疏索引

五、亮点设计

时间轮:

exactly once:比对parition和comsumer offset差值