消费群组和分区再均衡
1、 什么叫分区再均衡:
分区的所有权从一个消费者转移到另一个消费者,这样的行为叫做分区再均衡。
2、分区再均衡的功用:
它为消费者群组带来了高可用性和可升缩性。
3、为什么要最大限度的避免分区再均衡?
再均衡期间,消费者无法读取消息,造成整个群组一小段时间内不可用。另外,当分区被重新分配到另一个消费者时,消费者当前的读取状态会丢失,它有可能需要去刷新缓存,在它恢复状态之前会拖慢整个应用。
4、 引发分区再均衡的场景?
1、一个新消费者加入群组
2、一个消费者被关闭或者崩溃时,离开群组
3、主题发生变化时,比如管理员新添加了分区,此时会发生分区重新分配
5、消费者和群组的关系是怎么维系的?
消费者通过向被指派为群组协调器的broker发送心跳来维持他们和群组的从属关系以及他们对分区的所有权。只要消费者以正常的时间间隔发送心跳,就被认为是活跃的,说明他还在读取分区里面的消息。消费者会在轮询消息或提交偏移量时发送心跳。
6、服务器收不到消费者心跳的场景?
1、消费者断网了
2、消费者崩溃了
3、消费者有意识的自动断联
消费群组中消费者的数量不要大于主题分区的数量,一个分区只能被群组中的一个消费者消费,多余的消费者订阅不到任何消息。
8、必须一个消费者使用一个线程
在同一个群组里,我们无法让一个线程运行多个消费者,也无法让多个线程安全地共享同一个消费者。
9、broker向消费者推送消息的阈值
fetch.min.bytes 超过最小拉取数据量时向消费者立即推送
fetch.max.wait.ms 超过最大等待时间时必须向消费者推送数据
偏移量