一、初始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差值