消费群组和分区再均衡

       1、 什么叫分区再均衡:

                分区的所有权从一个消费者转移到另一个消费者,这样的行为叫做分区再均衡。

       2、分区再均衡的功用:

               它为消费者群组带来了高可用性和可升缩性。

       3、为什么要最大限度的避免分区再均衡?

                再均衡期间,消费者无法读取消息,造成整个群组一小段时间内不可用。另外,当分区被重新分配到另一个消费者时,消费者当前的读取状态会丢失,它有可能需要去刷新缓存,在它恢复状态之前会拖慢整个应用。 

       4、 引发分区再均衡的场景?

                 1、一个新消费者加入群组

                 2、一个消费者被关闭或者崩溃时,离开群组

                 3、主题发生变化时,比如管理员新添加了分区,此时会发生分区重新分配

      5、消费者和群组的关系是怎么维系的?

                 消费者通过向被指派为群组协调器的broker发送心跳来维持他们和群组的从属关系以及他们对分区的所有权。只要消费者以正常的时间间隔发送心跳,就被认为是活跃的,说明他还在读取分区里面的消息。消费者会在轮询消息或提交偏移量时发送心跳。

      6、服务器收不到消费者心跳的场景?

                1、消费者断网了

                2、消费者崩溃了

                3、消费者有意识的自动断联

消费群组中消费者的数量不要大于主题分区的数量,一个分区只能被群组中的一个消费者消费,多余的消费者订阅不到任何消息。

 

     8、必须一个消费者使用一个线程

                 在同一个群组里,我们无法让一个线程运行多个消费者,也无法让多个线程安全地共享同一个消费者。

    9、broker向消费者推送消息的阈值

                   fetch.min.bytes    超过最小拉取数据量时向消费者立即推送

                   fetch.max.wait.ms  超过最大等待时间时必须向消费者推送数据

   

偏移量