• kafka消费者重平衡是什么?怎么避免?


            消费者重平衡是指主题下的分区怎么分配给消费者的过程。下面这个图可以看出该过程:原来有2个消费者,3个分区,其中一个消费者肯定就的处理2个分区了。那么当新加入消费者时,则每个消费者就只处理一个分区了。处理这个分区过程的叫协调者,协调者就在broker端。

            当发生重平衡时,所有消费者都不能收到消息,所以发生这个过程是非常严肃的。

    什么时候会发生重平衡?

    1.  新的消费者加入。
    2. 消费者主动离开。比如取消对主题的订阅。
    3. 消费者崩溃离开。比如网络延迟导致心跳一直没收到。
    4. 主题分区数发生变更。

    怎么避免消费者重平衡?

            有几个参数可以重点看下:

    1. session.timeout.ms=10 协调者超过10秒没有收到消费者的请求则认为消费者已经下线。
    2. heartbeat.interval.ms 心跳频率。消费者间隔多久发送心跳。
    3. max.poll.interval.ms 消费者两次调用poll的时间间隔,默认是5分钟。超过5分钟则认为上次拉去的消息一直没消费完成,也被认为需要重平衡。
    4. max.poll.records=500 默认单次最大拉取条数为500。如果一次拉取太多数据,会导致超时了还没处理完成。

            主题有3个分区,那么消费者组员数应该也是3个才算合理的分配,多出的组员将无法分配消费分区是种浪费。消费者对应机器数最好是固定的,避免频繁加减节点带来的重平衡。

            

  • 相关阅读:
    医药制药行业有机VOCs废气治理
    网络套接字(UDP和TCP编程)
    Java 函数式编程
    在线html编辑器 富文本转为html代码
    公务员备考(二十九) 申论强化
    【C++基础】9. 数组
    Part2_扩展MATSIM_Subpart6_附加选择维度_第28章 联合决策
    《C和指针》(1)快速上手
    学习笔记1--自动驾驶系统架构
    Java练习 day6
  • 原文地址:https://blog.csdn.net/zzy916853616/article/details/136410313