IT运维中,如何快速进行故障排查?(以银行APP交易故障为例)

一、事件背景

正值"五一"黄金周旅游高峰期,某城商行的手机APP突然出现大面积交易失败和严重卡顿现象。据初步统计,从上午10点开始APP的交易成功率从正常的99%骤降至75%左右,用户反馈的交易失败投诉量在短短2小时内激增了500%。与此同时,APP的响应时间也从平均2秒延长至8秒以上,导致大量用户无法顺利完成转账、支付等操作。

这一事故影响范围不断扩大,截至中午12点已有超过50万用户受到不同程度的影响,其中约20万用户完全无法使用APP进行任何交易操作。

二、定位问题根源

首先,运维团队利用银行现有的APM(应用性能管理)工具对整个交易链路进行全面监控。通过分析交易链路上各个节点的响应时间,发现多个核心系统服务的处理时间都出现了明显的延长。

其次,使用链路追踪进行深入分析。通过对大量失败交易的调用链进行采样和分析,注意到一个共同特征:绝大多数超时或失败的交易都在访问支付结算业务的相关微服务时出现了异常,这个发现将故障的范围初步缩小。

为了进一步确认根因,团队使用了日志分析工具(如ELK stack)对系统日志进行了深入挖掘。通过设置关键字过滤和时间范围筛选,发现在支付结算业务相关微服务的MQ(消息队列)网关中出现了大量的错误日志,这些日志显示MQ网关在处理消息时频繁出现超时和连接断开的情况。

初步判断问题可能出在以下两个方面

1. 支付结算业务的相关微服务处于各系统交互链路的下游,可能成为整个交易流程的瓶颈。

2. 支付结算业务的相关微服务相关的MQ网关存在异常,导致消息处理出现问题。

经过进一步缩小范围推测,可能是由于假期期间交易量激增,导致支付结算业务的相关微服务和MQ网关无法承受如此大的并发压力,从而引发了整个系统的连锁反应。

应急处置

为了缓解系统压力,运维团队决定临时提高支付结算业务相关微服务的资源配置。通过云平台的弹性伸缩功能,将服务器的CPU核心数进行扩展。同时,增加了数据库连接池的最大连接数,从原来的200提升到500,以应对高并发情况。

其次,针对MQ网关的问题,团队采取了以下措施:

1. 增加MQ服务器节点,从原有的3个节点扩展到6个节点,以分散消息处理压力。

2. 调整MQ的消息处理策略,将部分非关键消息的处理优先级降低,确保核心业务消息能够优先处理。

3. 优化MQ网关的错误重试机制,将原本的固定间隔重试改为指数退避算法,以避免在网络波动时造成的大量无效重试。

除此之外,运维团队还部署更为细致的监控措施:

1. 在支付结算业务的相关微服务服务器上部署了专门的资源监控agent,实时监控CPU使用率、内存占用、I/O等待时间等关键指标。

2. 对MQ网关增加了消息堆积量、消息处理延迟时间等特定指标的监控。

3. 在应用层面,增加了更多的日志埋点,特别是在与支付结算业务的相关微服务和MQ交互的关键节点,以便更快速地定位潜在问题。

随着这些措施的实施,系统性能开始逐步恢复,支付结算业务相关微服务的平均查询时间从原本的500ms降低到了150ms以下,MQ网关的消息处理成功率从85%提升到了99%以上。APP的整体交易成功率在处置措施实施后的2小时内逐渐回升到了95%,响应时间也恢复到了正常水平。

三、擎创建议

根据上述案例,擎创认为在一些特殊时期,系统的承载能力预估不足是导致此次事故的根本原因。因此,从整体来看需要:

1. 建立更加完善的容量规划模型

结合历史数据和机器学习算法,更准确地预测未来的业务增长和系统负载。

2. 优化系统的弹性伸缩机制,实现更快速、更智能的资源动态调配。

3.相关业务系统方面

1) 重构访问逻辑,将非实时查询需求转移到专门的数据仓库中,减轻主支付结算业务的相关微服务的压力。

2)引入分布式缓存系统(如Redis集群),缓存热点数据,减少对支付结算业务的相关微服务的直接访问。

3)实施数据分片策略,根据业务特性将历史数据分散到多个物理节点,提高并行处理能力。

4.MQ网管方面

1)升级MQ系统,选用更高性能、更强大的消息中间件。

2)优化消息路由策略,实现更智能的负载均衡。

3)建立消息处理的降级机制,在系统压力过大时能够自动启动轻量级处理模式。

5.监控和预警方面

1)引入更先进的AIOps平台,利用机器学习算法实现更精准的异常检测和根因分析。

2)建立端到端的全链路监控体系,实现从用户端到后台系统的全面可观测性。

3)优化告警策略,实现更精准的告警触发和自动化的事件关联分析。

6.应急响应机制方面

1)建立更完善的应急预案库,针对不同类型的故障制定详细的处置流程。

2)强化跨部门协作机制,提高应急响应的效率和协同性。

3)定期组织大规模的故障演练,提高团队的实战能力。

通过这次事故,可以看出在业务快速发展的金融科技时代,系统的稳定性和可扩展性至关重要。将每一次的事故经验转化为推动技术革新的动力,全面提升IT基础设施的现代化水平,为用户提供更加稳定、高效的金融服务,是当下金融行业的使命之一。

擎创正不断深入优化金融智能运维解决方案,希望能够与更多行业客户携手,打造数智化的运维平台,为业务运营保驾护航!

擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。

 行业龙头客户的共同选择

了解更多运维干货与行业前沿动态

可以右上角一键关注

我们是深耕智能运维领域近十年的

连续多年获Gartner推荐的AIOps标杆供应商

下期我们不见不散~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/389672.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch】多对象分割项目

【PyTorch】单对象分割项目 对象分割任务的目标是找到图像中目标对象的边界。实际应用例如自动驾驶汽车和医学成像分析。这里将使用PyTorch开发一个深度学习模型来完成多对象分割任务。多对象分割的主要目标是自动勾勒出图像中多个目标对象的边界。 对象的边界通常由与图像大小…

2025浙江(杭州)国际安防产品展览会(浙江安博会)

2025浙江(杭州)国际智慧城市与安防产品展览会 2025hangzhou smart city And Security Expo 时间:2025年4月23-25日 地点:杭州国际博览中心 展会介绍 浙江(杭州)国际智慧城市及安防产品博览会(简称:浙江安博会&#…

告别繁琐,AI助你轻松制作PPT!2024四大工具推荐

PPT是现代商务和教育领域中不可或缺的工具。然而,制作一份高质量的PPT往往需要花费大量的时间和精力。AI PPT制作工具的出现可以很好地解决这一问题。下面为大家推荐几个AI PPT制作工具。 笔灵AIPPT:智能设计,一键生成 链接:htt…

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能

技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 前文三篇登录和注册功能的实现 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作…

Golang | Leetcode Golang题解之第309题买卖股票的最佳时机含冷冻期

题目&#xff1a; 题解&#xff1a; func maxProfit(prices []int) int {if len(prices) 0 {return 0}n : len(prices)f0, f1, f2 : -prices[0], 0, 0for i : 1; i < n; i {newf0 : max(f0, f2 - prices[i])newf1 : f0 prices[i]newf2 : max(f1, f2)f0, f1, f2 newf0, n…

【秋招笔试】24-07-27-OPPO-秋招笔试题(后端卷)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 💡 01.二进制反转游戏 问题描述 K小姐…

体验教程:通义灵码陪你备战求职季

本场景将带大家体验在技术面试准备场景下&#xff0c;如何通过使用阿里云通义灵码实现高效的编程算法题练习 、代码优化、技术知识查询等工作&#xff0c;帮助开发者提升实战能力&#xff0c;更加从容地应对面试挑战。主要包括&#xff1a; 1、模拟题练习&#xff1a;精心挑选…

卸载Windows软件的正确姿势,你做对了吗?

前言 今天有小伙伴突然问我&#xff1a;她把软件都卸载了&#xff0c;但是怎么软件都还在运行&#xff1f; 这个问题估计很多小伙伴都是遇到过的&#xff0c;对于电脑小白来说&#xff0c;卸载Windows软件真的真的真的是一件很难的事情。所以&#xff0c;今天咱们就来讲讲&am…

2024最简七步完成 将本地项目提交到github仓库方法

2024最简七步完成 将本地项目提交到github仓库方法 文章目录 2024最简七步完成 将本地项目提交到github仓库方法一、前言二、具体步骤1、github仓库创建2、将远程仓库拉取并合并&#xff08;1&#xff09;初始化本地仓库&#xff08;2&#xff09;本地仓库与Github仓库关联&…

数据可视化工具,免费无限制制作报表

许多企业在报表制作上投入了大量资金&#xff0c;使用各种收费软件&#xff0c;往往只能满足基本需求&#xff0c;且操作复杂&#xff0c;让人感到无比头疼。不过最近我发现之前一直在做数据大屏的山海鲸可视化&#xff0c;现在新增了报表功能&#xff0c;不仅各种功能都可以免…

远程访问mysql数据库的正确打开方式

为了安全&#xff0c;mysql数据库默认只能本机登录&#xff0c;但是在有些时候&#xff0c;我们会有远程登录mysql数据库的需求&#xff0c;这时候应该怎么办呢&#xff1f; 远程访问mysql数据&#xff0c;需要两个条件&#xff1a; 首先需要mysql服务器将服务绑定到0.0.0.0…

【JVM】类加载器和双亲委派模型

什么是类加载器 如果想要了解什么是类加载器就需要清楚一个Java文件是如何运行的。我们可以看下图&#xff1a; 首先要知道操作系统是不能直接运行Java文件的&#xff0c;所以就需要通过JVM将Java文件转换为操作系统可以运行的文件类型&#xff0c;步骤如下&#xff1a; 类加…

入门必读:11个最受欢迎的UI设计网页软件详细评测

即时设计首发UI设计网页软件的轻量化和在线协作已成为当前UI设计网页软件的发展方向。网页UI设计不容易&#xff0c;实用的网页UI制图软件更难找到。随着网络的快速发展&#xff0c;网站迅速崛起&#xff0c;网页UI设计也很流行。UI设计网页软件即时设计是一种协同设计工具&…

MySQL是怎样运行的——第2章 启动选项和系统变量

文章目录 2.1 在命令行上使用选项2.1.1 选项的长形式和短形式 2.2 配置文件中使用选项2.2.1 配置文件的路径2.2.2 配置文件的内容2.2.3 配置文件的优先级 2.3 命令行和配置文件中启动选项的区别2.4 系统变量2.4.1 简介2.4.2 查看系统变量2.4.3 设置系统变量2.4.4 启动选项和系统…

PyQt5新手教程(五万字)

文章目录 PyQt界面开发的两种方式&#xff1a;可视化UI 编程式UI一、PyQt 简介二、PyQt 与 Qt 的蒙娜丽莎三、PyQt 布局管理器&#xff08;Layout Manager&#xff09;3.1、简介3.1.1、布局管理器的定义3.1.2、布局管理器的类型3.1.3、布局管理器的使用方法 3.2、项目实战3.2.…

查物流信息用什么软件

在电子商务日益繁荣的今天&#xff0c;快递物流信息的查询成为了我们日常生活中不可或缺的一部分。无论是网购达人还是商家&#xff0c;都需要随时掌握货物的物流动态。然而&#xff0c;如何快速、准确地查询物流信息却是一个令人头疼的问题。今天&#xff0c;我将为大家介绍一…

AI大模型需要什么样的数据?

数据将是未来AI大模型竞争的关键要素 人工智能发展的突破得益于高质量数据的发展。例如&#xff0c;大型语言模型的最新进展依赖于更高质量、更丰富的训练数据集&#xff1a;与GPT-2相比&#xff0c;GPT-3对模型架构只进行了微小的修改&#xff0c;但花费精力收集更大的高质量…

C++11深度剖析

目录 &#x1f680; 前言&#xff1a;C11简介 一&#xff1a; &#x1f525; 统一的列表初始化&#x1f4ab; 2.1 &#xff5b;&#xff5d;初始化 二&#xff1a; &#x1f525; std::initializer_list &#x1f4ab; 2.1 std::initializer_list是什么类型&#x1f4ab; 2.2 s…

正则采集器之三——前端搭建

前端使用有名的饿了么管理后台&#xff0c;vue3版本vue3-element-admin&#xff0c;首先从gitee中克隆一个vue3-element-admin模板代码vue3-element-admin: Vue3 Element Admin开箱即用的中后台管理系统前端解决方案&#xff0c;然后在此基础上进行开发。 1、修改vite.config.…

【C++】初识类和对象

本篇介绍一下C的自定义类型&#xff0c;类和对象。 1.类的定义 1.1 类定义格式 class 为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;类名随便取&#xff0c;{}中为类的主体&#xff0c;类定义结束时后面的分号不可省略。类主体中内容称为类的成员&#xff1a;类中…