分享好友 最新动态首页 最新动态分类 切换频道
紧急生产问题:线上kafka百万消息积压如何处理
2024-12-25 12:34

大家在日常开发中,是否处理过大批量消息积压的问题

紧急生产问题:线上kafka百万消息积压如何处理

它一般由于代码bug(比如消费逻辑处理有误、或者生产者的生产速度大于消费者的消费速度(如大促、抢购等活动期间导致消息数量激增或者消费者处理速度极慢,就可能导致生产环境出现百万、甚至千万的消息积压。

那么,假设发生kafka百万消息堆积,如何解决呢

  • 先排查是不是bug,如果是,要快速修复

  • 优化消费者代码逻辑

  • 临时紧急扩容,新建临时topic

遇到消息积压问题时,我们需要先排查是不是有bug产生了,比如消费者未正确提交偏移量(Offset)。

消费者在处理完消息后未提交偏移量,导致重复消费或消费停滞。进而形成大量消息积压。

给个伪代码反例

 

在处理完消息后,要正确提交偏移量。

 
 

如果不是bug,那就可能是消费者速度不给力,导致的消息积压。我们可以优化一下消费者代码逻辑。

可以使用多线程处理,可以减少每条消息的处理时间(比如减少不必要的计算,从而提高消息处理速度。

假设消费者有两台机器,消费者代码优化前是,1秒处理100条消息。代码优化后l秒可以处理消息500条

一个小时,可以处理消息:2* 500 * 3600 = 3600 000

可以发现,如果累积了3百多万消息的话,处理完也要一个小时。如果是生产环境,一些比较敏感或者特殊的业务是不允许很长的时间延迟的。

业务紧急的话,我们可以临时紧急扩容,新建临时topic。

比如原来的topic 只有两个partition分区,因为消费者处理很耗时等操作,导致了百万消息积压,这时候需要紧急快速处理。

这时候,消费者的代码,我们可以做一些调整,就是不再处理其他业务操作。而是新建临时的topic,把消息转发到临时的topic,并且partition 分区增加到原来的 10倍

然后我们原来消费者业务逻辑处理的代码,放在新的临时消息那里处理。

等快速消费完积压数据之后,得恢复原先部署的架构,下掉临时消费者,重新用原先的 consumer 机器来消费消息。

对于线上kafka 消息大量积压的问题,我总结了这几点

  • 我们要做好监控和告警当消息积压到一定程度的时候,就要告警,通知负责人,提前处理。

  • 不要上来就新建临时topic,去快速处理大量积压问题。应该先排查是不是bug,优化消费者的代码

  • 如果消息设置了超时时间,因为百万消息积压没来得及处理就过期清理,可以设置定时任务拉起来重发一下

最新文章
ASPCMS 开源企业网站内容管理系统 UTF8 v2.7.7
ASPCMS是由上谷网络开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且支持模版自定义、支持扩展插件等等,能够在短时间内完成企业建站。 本版为直接使用版 , 下载后上传即可使用 , 详细请查看下载源码中文档说明。功能
Discuz论坛SEO优化技巧分享
Discuz论坛一直以来是国内最受欢迎的论坛软件之一,它功能强大、灵活性高,而且支持SEO优化,有助于提高论坛的搜索引擎可见性和流量。本文将分享一些Discuz论坛SEO优化的技巧,包括具体的代码示例,帮助网站管理员更好地优化论坛以提升排名
AI控制工业机器人入门教程
简介 AI控制的工业机器人正在改变现代制造业的面貌。与传统的编程控制不同,AI使机器人能够通过感知环境、自主决策和学习不断优化自身的操作。这篇教程将介绍实现AI控制工业机器人的必要知识和技能,帮助读者从基础开始构建起A
AI画图无审核"引发热议:创作者们的自由与伦理的巨大碰撞,震惊业界的影响正在显现!
  最新消息:某知名艺术平台近日宣布将不再对用户上传的AI生成作品进行审核,这一决定引发了广泛关注和热议。创作者们在享受自由表达的同时,也面临着伦理与法律的巨大挑战。  随着技术的发展,AI工具为艺术创作带来了前所未有的便利。
360 企业安全云
随着云计算、大数据、人工智能技术的飞速发展,当前大型企业的数字化转型已经走上了快车道,在充足的资金、技术、人才支持下,各类企业级软件和云服务让企业生产力大幅提升,实现了降本增效和高质量发展。各级政府机构、组织、企业单位等也
360借条催债合法吗
360借条催债合法吗?一、 小编导语近年来,随着互联网金融的快速发展,网络借贷平台层出不穷。360借条作为其中一个较为知名的平台,其便捷的借贷流程吸引了众多用户。伴随着借贷便利性的同时也存在着一些风险,其中催债方式是否合法合规成
ddos攻击怎么防御,一文了解如何防御DDoS攻击
DDoS攻击是目前最普遍的网络攻击手段,DDoS攻击非常受黑客欢迎,因为DDoS攻击非常有效,易于启动,并且几乎不会留下痕迹。那么如何防御DDoS攻击呢?你能否确保对你的web服务器和应用程序提供高级别的DDoS攻击防护?超级科技带你一文了解如
C语言程序 电脑启动智能语音,智能语音控制中心: 运行于树莓派、Nanopi、OrangePi等开发板的智能语音控制程序。本程序基于百度语音识别、语音合成和图灵机器人。可通过程序控制语音控制家中电器设
智能语音控制中心C语言编写的基于百度语音识别、语音合成和图灵机器人的智能语音控制中心。程序自动适配环境音量,取适当阀值当说话后才开始录音。加入偶发性声音检测机制,不会对突然性的声音做出处理。此程序能够在Nanopi Ne
ai文案生成器:让写作更快、更准、更有趣
  人工智能在各行各业中已经广泛应用,其中包括文案行业。而AI文案生成器是一种利用深度学习算法、自然语言处理技术等实现文本自动生成的工具。这种工具不仅能够帮助我们简化写作流程,还能够提高我们的写作效率、准确度和创
相关文章
推荐文章
发表评论
0评