menu dzf
search self_improvement
目录

kafka消息积压如何解决

dzf
dzf 2022年05月18日  ·  阅读 286

在某些高并发的场景kafka可能会出现消息积压的情况,比如说短时间内用户数量激增,消息的消费速度跟不上消息的生产速度,我们该如何解决呢?

一.导致消息积压的因素
Kafka作为消息引擎,处理消息的中间件,首连接着生产者,尾接着消费者,那不难看出影响的因素:

  1. 生产者的消费过快
  2. Kafka处理消息的能力不足
  3. 消费者的消费过慢

了解了为什么会影响到消息积压的因素后,我们就可以针对性的给出解决方案了

二.解决方案

  1. 优化消息者逻辑,修改配置,修改业务逻辑等
    比如批量处理处理消息,减少与broker的交互次数,设置每次拉取多条消息进行处理,而不是一条一条地处理。修改可拉取的最大字节数限制,防止大的消息体影响消费速率。
  2. 增加消费者,扩容消费者实例
    比如增加一些消费者组,加快消费速率
  3. 控制生产者的消息发布速度
    比如加一些网关,限流机制,让生产者发布消息的速度放缓,给下游消费者多些时间

在性能测试中,我们也会模拟消息积压的场景,确保线上不会出现问题。通常压测后会得到一下的结果:1.消费者的消费速率,可以满足多少的并发数不会出现消息积压的情况。2.生产者基于外部接口的消息生产速率是多少。3.broker是否支撑目前的消息积压情况

分类:
标签: