1.结构:
Broker一主多从
主题 -> 分区 -> 副本 -> 日志 -> 日志分段 -> 索引文件(偏移量索引,时间戳索引)
2.消费者Rebalance时机(会发生STW):
- 组内成员数发生变化
- 订阅主题数发生变化(订阅主题支持正则)
- 主题分区数变更
3.心跳
独立线程来心跳
4.定时器 模拟时钟的设计,分层级的时间轮,高层级的时间临近到期时间时转移到低层级的轮中
5.ISR 一条消息只有被ISR集合的所有副本都运用到本地的日志文件,才会认为消息被成功提交了。任何时刻,只要ISR至少有一个副本是存活的,Kafka就可以保证“一条消息一旦被提交,就不会丢失“