当前位置: 首页 > news >正文

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标杆供应商

下期我们不见不散~

相关文章:

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

一、事件背景 正值"五一"黄金周旅游高峰期,某城商行的手机APP突然出现大面积交易失败和严重卡顿现象。据初步统计,从上午10点开始APP的交易成功率从正常的99%骤降至75%左右,用户反馈的交易失败投诉量在短短2小时内激增了500%。与此…...

入门mem0.NET

入门mem0.NET 安装包 如果你的项目使用了EntityFrameworkCore,那么你可以跟随这个教程走 <ItemGroup><PackageReference Include"mem0.NET" Version"0.1.7" /><PackageReference Include"mem0.NET.Qdrant" Version"0.1.7…...

虚拟机(CentOS7)安装jenkins

centos7安装jenkins 前提条件&#xff0c;安装jdk与maven 1、JDK17安装 # 进入系统管理员 sudo root # 进入对应文件夹下 cd /usr/local # 下载jdk17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm # rpm命令安装下载的jdk17 rpm -ivh jdk-17_li…...

尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)

目录&#xff1a; &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 &#xff08;3&#xff09;修改web-all模块 &#xff08;4&#xff09;页面渲染 &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 前面做了…...

对象存储及其相关概念介绍

对象存储是一种用来描述解决和处理离散单元&#xff08;这些离散单元被称作为对象&#xff09;的方法的通用术语。以下是关于对象存储的详细解析&#xff1a; 一、基本概念 定义&#xff1a;对象存储&#xff0c;也叫做基于对象的存储&#xff0c;是一种将数据以对象的形式进…...

TypeScript 研发系列

#TypeScript 编写HTML 游戏...

三维世界,一图打尽!Matplotlib带你玩转3D绘图,让数据跳舞的魔法棒!

1. 引言 嘿&#xff0c;亲爱的数据探险家们&#xff01;你们是否曾梦想过&#xff0c;在二维的屏幕上&#xff0c;让数据跳出束缚&#xff0c;翩翩起舞&#xff0c;展现它那迷人的三维身姿&#xff1f;今天&#xff0c;就让我这位自封的‘数据魔术师’&#xff0c;带你解锁Mat…...

计算机常识与NOIP历史-CSP初赛知识点整理

真题练习 [2021-CSP-J-第2题] 以下奖项与计算机领域最相关的是&#xff08; &#xff09;。 A.奥斯卡奖 B.图灵奖 C.诺贝尔奖 D.普利策奖 [2017-NOIP-第7题] 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。 A. 1983 B. 1984 C. 1985 D. 1986 [2018-NOIP-第5题…...

代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II

目录 209. 长度最小的子数组1、题目描述2、思路3、code4、复杂度分析 LC59 螺旋矩阵 II1、题目描述2、思路3、code4、复杂度分析 209. 长度最小的子数组 题目链接&#xff1a;209 1、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于…...

鼻咽癌综述

小罗碎碎念 本期推文主题&#xff1a;鼻咽癌综述 这篇文章提供了一个全面的综述&#xff0c;探讨了鼻咽癌&#xff08;NPC&#xff09;的关键研究进展&#xff0c;包括病理机制、治疗、筛查和生物标志物的发展。 文章首先强调了NPC在特定地理区域的流行情况&#xff0c;并讨论了…...

中国AI PC行业研究报告

核心摘要&#xff1a; 2020-2023年中国笔电出货量呈下降趋势&#xff0c;PC厂商亟需从产品形态、软硬技术、需求场景等角度寻求新的增长机会。而随着大模型、生成式AI技术的到来&#xff0c;其强大的数据处理、学习泛化与内容生成能力&#xff0c;高质效加速了各行各业人工智能…...

Mybatis实战:图书管理系统(笔记)

前言&#xff1a;如果在接口的声明方法中鼠标右键没有Test的单元测试。 你的鼠标光标问题&#xff1a;要在花括号范围内&#xff01;&#xff01;&#xff01;&#xff01; 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚…...

win11 amd64 python安装matplotlib、pytorch报错记录

win11 amd64 python matplotlib 安装报错记录 安装时 错误是 metadata-generation-failed 查看上面的具体报错原因&#xff0c;来自&#xff1a; Files\Python\Python3_10_11\Include: linker input file not found: No such file or director注意Python 的路径中最好不要有…...

Python写UI自动化--playwright(等待页面加载机制)

很多情况下&#xff0c;我们都需要等待页面加载到一定程度才能进行下一步操作&#xff0c;而这个度该怎么操作&#xff0c;这篇文章就来详细讲一讲 目录 expect_popup() wait_until参数 "load" commit: "domcontentloaded" "networkidle"…...

书籍将整数字符串转成整数值(5)0804

题目 给定一个字符串str&#xff0c;如果str符合日常书写的整数形式&#xff0c;并且属于32位整数的范围&#xff0c;返回str所代表的整数值&#xff0c;否则返回0。 举例 str“123” 返回 123 str“023” 因为023 不符合日常的书写习惯&#xff0c;所以返回0 str“A13” …...

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分&#xff08;Best Score&#xff0c;简称 BS&#xff09;是多少&#xff1f;全国有多少个景点获评了这个最高评分&#xff08;BS&#xff09;&#xff1f;获评了这个最高评分&#xff08;BS&#xff09;景点最多的城市有哪些&am…...

全球氢化双酚A (HBPA)市场规划预测:2030年市场规模将接近1330亿元,未来六年CAGR为2.7%

一、引言 随着全球化工行业的持续发展&#xff0c;氢化双酚A (HBPA)作为重要的化工原料&#xff0c;其市场重要性日益凸显。本文旨在探索HBPA行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球HBPA市场的增长主要受全球化工行业增加、消费者对高性能化工产品要求提高…...

【C++】异常处理:深度解析与实战精髓,不容错过的编程秘籍

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 前言&#xff1a;C语言传统的处理错误的方式 一&#xff1a; &#x1f525; C异常概念二&#xff1a; &#x1f525; 异常的使用 2.1 &#x1f4d6; 异常的抛出和…...

智能指针的循环引用 是什么 怎么引起的

智能指针的循环引用 是什么 怎么引起的 智能指针的循环引用&#xff08;Circular Reference&#xff09;是指两个或多个对象之间的共享指针相互引用&#xff0c;导致这些对象永远不会被释放&#xff0c;从而引发内存泄露。主要发生在使用std::shared_ptr时&#xff0c;因为它们…...

Stegdetect教程:如何用Stegdetect检测和破解JPG图像隐写信息

一、Stegdetect简介 Stegdetect 是一个开源工具&#xff0c;专门设计用于检测图像文件&#xff08;JPG格式&#xff09;中的隐写信息。Stegdetect 可以检测多种常见的隐写方法&#xff0c;比如 JSteg、JPHide 和 OutGuess 等。 二、使用Stegdetect检测图像隐写 官方描述&#…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...