要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现)、故障时解决(有完整的应急预案)这三阶段。
另外的篇幅请参考
防微杜渐,遇到问题/故障时有完整的应急预案,以快速定位并解决问题。
1. Kafka消息堆积紧急预案
问题描述:消费端产生消息积压,导致依赖该消息的服务不能及时感知业务变化,导致一些业务逻辑、数据处理出现延迟,容易产生业务阻塞和数据一致性问题。
方案:问题排查、扩容升配策略、消息Topic转换策略、可配置多线程的消费策略。
1.1 问题排查
遇到消息积压时,具体可以从以下几个角度去定位问题原因:
-
消息生产端数据量是否存在陡升的情况
-
消息消费端消费能力是否有下降
-
消息积压是发生在所有的partition还是所有的partition都有积压情况