1. 消费者组(Consumer Group)
消费者组是Kafka实现单播和广播两种消息模型的手段。同一个topic,每个消费者组都可以拿到相同的全部数据。
1.1 消费者多于分区数
- 创建一个用于测试的单分区topic test
- 设置consumer.properties文件
将consumer.properties文件中的group id命名为group1,方便后续测试。
- 在group1中启动两个消费者
此时,消费者的数量大于分区的数量。
- 测试消费者消费数据的情况
使用生产者生产数据,可以得到两个消费者消费数据的情况,如下:
这说明:同一个分区内的消息只能被同一个组中的一个消费者消费,当消费者数量多于分区数量时,多于的消费者空闲(不能消费数据)。
1.2 消费者少于和等于分区数
- 创建一个三分区的topic test2
- 首先在group1中启动两个消费者
此时,消费者的数量小于分区的数量
- 测试消费者消费数据的情况
这说明:当分区数多于消费者数的时候,有的消费者对应多个分区。
- 在group1中启动三个消费者并测试
这说明:当分区数等于消费者数的时候,每个消费者对应一个分区。
1.3 多个消费者组
- 命名一个新的消费者组
- 启动消费者消费数据
这说明:启动多个组,相同的数据会被不同组的消费者消费多次。