1 什么是消费者组
消费者组(consumer group)是kafka提供的可扩展且具有容错性的消费者机制。它具有下面三个特性:
1,消费组有一个或多个消费者,消费者可以是一个进程,也可以是一个线程;
2,group.id是一个字符串,唯一标识一个消费组;
3,消费组订阅的主题每个分区只能分配给消费组一个消费者。
2 消费者位移
消费者在消费的过程中记录已消费的数据,即消费位移(offset)信息。每个消费组保存自己的位移信息,那么只需要简单的一个整数表示位置就够了;同时可以引入checkpoint机制定期持久化。
3 位移管理
kafka默认定期自动提交位移( enable.auto.commit = true ),也手动提交位移。另外kafka会定期把group消费情况保存起来,做成一个offset map,如下图所示:
4 位移提交
位移是提交到Kafka中的 __consumer_offsets 主题。 __consumer_offsets 中