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组件配置的设置等

相关推荐
joker D8882 小时前
【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希
c++·分布式·哈希算法
CET中电技术3 小时前
“光伏+储能+智能调控”,CET中电技术分布式智能微网方案如何实现?
分布式·储能·光伏
Akamai中国4 小时前
分布式AI推理的成功之道
人工智能·分布式·云原生·云计算·云服务·云平台·云主机
星星点点洲4 小时前
【RabbitMQ】消息丢失问题排查与解决
分布式·rabbitmq
小白学大数据6 小时前
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
javascript·redis·分布式·scrapy
Kookoos6 小时前
Redis + ABP vNext 构建分布式高可用缓存架构
redis·分布式·缓存·架构·c#·.net
漂流瓶6666667 小时前
运行Spark程序-在shell中运行 --SparkConf 和 SparkContext
大数据·分布式·spark
lqlj22338 小时前
RDD案例数据清洗
大数据·分布式·spark
£菜鸟也有梦8 小时前
Kafka进阶指南:从原理到实战
大数据·kafka
心仪悦悦9 小时前
RDD的自定义分区器
大数据·分布式·spark