kafka重平衡经验总结

概要

关于kafka重平衡问题在实践工作的应用

背景

重平衡包括以下几种场景:

  1. 消费者组内成员发生变更,这个变更包括了增加和减少消费者。注意这里的减少有很大的可能是被动的,就是某个消费者崩溃退出了
  2. 主题的分区数发生变更,kafka目前只支持增加分区,当增加的时候就会触发重平衡
  3. 订阅的主题发生变化,当消费者组使用正则表达式订阅主题,而恰好又新建了对应的主题,就会触发重平衡

在实际工作应用中, 第一点出现的情况会比较多, 因为2,3经常就是初始化时候会触发一次,正常运行下是不会出现2,3的, 1增加和减少消费者, 在涉及新服务接入等场景时, 会触发。

导致1情况出现的具体场景有:

  1. 某个消费者服务重启
  2. 某个服务在进行消费时(消费消息的过程就是对消息的计算或者说CSUD), 这个消息卡顿住了, 进而超时, 影响了整个消费者
    例如: 500 max.poll.interval.ms 默认值5分钟,表示若5分钟之内消费者没有消费完上一次poll的消息,那么consumer会主动发起离开group的请求

解决方法

提示:这里可以添加技术名词解释

例如:

  • 抑制重试机制,在工作中,一个消费者太长时间不去进行消费, 会被强制踢掉下线,这样就会导致消费者的减少, 进而整个消费者组都进行重平衡
  • 优化架构, 很多架构都是下游处理单元直接作为消费者进行消费, 例如下游A,B,C三个服务直接消费kafka, 那么其中一个服务除了问题, 都有可能会影响到其余两个服务的消费, 这种情况下, 可以考虑通过优化架构的方式实现, 重新建立一个服务, 只负责作为消费者拉取消息,那么,流程就是kafka->D->A,B,C, D只负责拉取消息, 并存储(存储到redis, mysql, ES等存储组件中), 下游的A,B,C再去这些存储组件拉取消息并进行处理
  • 消费者消费逻辑优化 消费消息时, 可以先把消息存储下来, 后续在进行处理
  • GPT-3
  • ChatGPT

技术细节

小结

kafka重平衡无法避免, 但可以通过多个手段来保证稳定性, 包括业务层的优化, 架构的优化和kafka组件配置的设置等

相关推荐

  1. kafka平衡经验总结

    2024-01-06 20:08:02       40 阅读
  2. kafka实践】10|消费者平衡

    2024-01-06 20:08:02       35 阅读
  3. Kafka每日一问】Kafka平衡逻辑是什么样的?

    2024-01-06 20:08:02       37 阅读
  4. 项目管理经验总结

    2024-01-06 20:08:02       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 20:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 20:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 20:08:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 20:08:02       20 阅读

热门阅读

  1. Nestjs 微服务实战 - 动态微服务创建链接

    2024-01-06 20:08:02       37 阅读
  2. 通过data恢复postgresql

    2024-01-06 20:08:02       41 阅读
  3. 【sed学习】sed -i和sed -i -e有什么区别

    2024-01-06 20:08:02       28 阅读
  4. docker安装dcm4chee

    2024-01-06 20:08:02       39 阅读
  5. C语言-蓝桥杯2023年第十四届省赛真题-砍树

    2024-01-06 20:08:02       31 阅读