• Kafka知识补充


    如何避免 Rebalance
    最简单粗暴的就是 : 减少组成员数量发生变化

    每个 Consumer 实例都会定期地向 Coordinator 发送心跳请求,表明它还存活着。如果某个 Consumer 实例不能及时地发送这些心跳请求,Coordinator 就会认为该 Consumer 已经“死”了,从而将其从 Group 中移除,然后开启新一轮 Rebalance。Consumer 端有个参数,叫 session.timeout.ms,就是被用来表征此事的。该参数的默认值是 10 秒,即如果 Coordinator 在 10 秒之内没有收到 Group 下某 Consumer 实例的心跳,它就会认为这个 Consumer 实例已经挂了。可以这么说,session.timout.ms 决定了 Consumer 存活性的时间间隔。

    除了这个参数,Consumer 还提供了一个允许你控制发送心跳请求频率的参数,就是 heartbeat.interval.ms。这个值设置得越小,Consumer 实例发送心跳请求的频率就越高。频繁地发送心跳请求会额外消耗带宽资源,但好处是能够更加快速地知晓当前是否开启 Rebalance,因为,目前 Coordinator 通知各个 Consumer 实例开启 Rebalance 的方法,就是将 REBALANCE_NEEDED 标志封装进心跳请求的响应体中。

    除了以上两个参数,Consumer 端还有一个参数,用于控制 Consumer 实际消费能力对 Rebalance 的影响,即 max.poll.interval.ms 参数。它限定了 Consumer 端应用程序两次调用 poll 方法的最大时间间隔。它的默认值是 5 分钟,表示你的 Consumer 程序如果在 5 分钟之内无法消费完 poll 方法返回的消息,那么 Consumer 会主动发起“离开组”的请求,Coordinator 也会开启新一轮 Rebalance。

    kafak副本同步机制

    ISR,Controller,HW(高水位,主副本的最大offset才能被消费)

    Kafka副本同步机制_kafka 副本同步-CSDN博客

    什么时候副本会被移到OSR

    replica.lag.max.messages Fllower落后leader消息数量

    replica.lag.time.max.ms Fllower没有相应leader时间

    Kafka副本同步机制理解-CSDN博客

  • 相关阅读:
    DAMA-第三章(数据治理)
    海外IP代理如何助力跨境电商?
    【Day_15 0510】查找输入整数二进制中1的个数
    C# 获取入参函数名
    字符串排序
    Redis/Mysql知识概述
    Java(十)(网络编程,UDP,TCP)
    【运维、实施必读】ansible使用playbook批量部署nginx等服务及常见错误排查
    实战回忆录:从Webshell开始突破边界
    461.汉明距离
  • 原文地址:https://blog.csdn.net/caihongmeimeis/article/details/133756463