Kafka 消息大量积压的一些总结

💡 原文中文,约1700字,阅读约需4分钟。
📝

内容提要

本文总结了使用Kafka作为消息队列时处理消息积压的方法和注意事项,包括消费者问题、分区设计问题和网络问题。针对消费者问题,可以提高消费速度、控制消费者获取消息的数量和优化消费者处理逻辑。分区设计不合理可能需要重新设计分区策略。网络带宽瓶颈也可能导致积压。

🎯

关键要点

  • 本文总结了使用Kafka作为消息队列时处理消息积压的方法和注意事项。
  • 主要从消费者问题、分区设计问题和网络问题三个方向排查分析问题。
  • 消费者问题是导致消息积压的主要原因,包括处理速度慢和故障。
  • 提高消费速度的方法包括监控消息数量、扩容消费者数量和创建新Topic。
  • 创建新Topic时,Partition数量应为原先的10倍,并编写临时消费者程序分发数据。
  • 控制消费者获取消息的数量可以通过调整fetch.min.bytes、fetch.max.wait.ms和max.poll.records参数。
  • 优化消费者处理逻辑可以通过多线程、减少数据库调用和减少下游RPC调用来实现。
  • 分区设计不合理可能导致消息堆积,需要重新设计分区策略。
  • 网络带宽瓶颈也可能导致消息积压。
➡️

继续阅读