Kafka 消费者
提交和偏移量
Kafka 消费者在每次调用 poll()
方法时,总是返回由生产者写入 Kafka 但还没有被消费者读取过的记录。
更新分区(partition)当前位置的操作叫做提交。
Kafka 消费者提交偏移量offset的方法是向一个特殊的主题__consumer_offsets
发送消息,这个消息里的内容包含每个分区的偏移量
offset 由消费者保持,offset 是针对 消费者、partition 而言的,默认保存在 zookeeper 中
消费者组
消费者组groupid和消费者组之间可以对同一个消息进行独立的、重复消费。
消费者组内部的各个消费者之间对同一个消息只能进行共享的、唯一一次的消费。
再均衡策略
触发时机
消费者组中的某个消费者崩溃、关闭
消费者组中新增消费者
如果消费者组中的消费者数量 > 分区数量,那么新增的消费者已经不会指定分区,这种情况下有必要再均衡吗?还是说作为副本?
删除某个主题topic
分区partition数量发生变化
不良影响
发生Rebalance(再均衡)时,消费者组中的所有 consumer 都会暂停工作,共同来参与 Rebalance,直到 Rebalance 结束。所以应该尽可能避免产生再均衡。