高级消费者弊端:
数据丢失:receive进程开启,程序在提交了offset之后宕机重启,此时计算的数据丢失。
数据重复:receive进程开启,程序在提交了offset之前宕机重启,此时计算的数据丢失。
controller角色:
生产过程:负责分区的位置和leader的选取,监控ISR队列
coordinater:
消费过程:rebalance过程,分配消费者组的消费情况。
怎么知道消费进展的呢?
__consumeroffsets保存了每一个消费者组的消费情况,位置根据每一个groupid来决定,存在哪一个broker上面,这个就是coordinater。