日志文件结构
log文件,index文件,timestamp文件
log文件:
0000000000000123.log
timestamp文件,文件里面内容是按照时间升序排序,一个partition 分成多个timestmap文件,搜索效率也很高;首先,很容易定位出在哪一个文件里面,时间戳比较一下就能得出结论;
index文件,文件名称是初始位移, 文件里面是相对位移和消息地址;
消费者组,一种可扩展和容错性机制; 消费者组里面某一个消费者无法消费消息了,消费者组coordinator 会自动把该消费者的分区分配到组里其它消费者上去;实现了系统的高可用;
poll push方式比较
位移管理
kafka ack机制
ACK = 0 时, 发送一次 不论leader是否接收;
ACK = 1 时,等待leader接收成功即可;
ACK = -1 时 ,需等待leader将消息同步给follower;
rebalance过程
一个consumer group 下有20个consumer实例, kafka分区总共有100个,把这个100个分区分给20个实例,每个实例消费5个分区的过程,称之为rebalance过程;
rebalance触发条件
组成员发生变更,组订阅topic发生变化, 组topic分区发生变化;
rebalance分区分配策略
range分配策略(默认), round-bin分配策略