在文章的第三部分,我们通过一个简单的例子描述了java代码如何实现消费者消费消息的案例。在这个章节我们要重点了解一下kafka消费者的位移提交、再平衡及消费组等相关知识。
1 消费者及消费组
消费者从订阅的主题消费消息,消费消息的偏移量保存在Kafka的名字是 __consumer_offsets 的主题中。消费者还可以将自己的偏移量存储到Zookeeper,需要设置offset.storage=zookeeper。推荐使用Kafka存储消费者的偏移量,因为Zookeeper不适合高并发。
多个从同一个主题消费的消费者可以加入到一个消费组中,消费组中的消费者共享group_id,消费组均衡地给消费者分配分区,每个分区只由消费组中一个消费者消费。
configs.put("group.id", "xxx")