一、事件背景
正值"五一"黄金周旅游高峰期,某城商行的手机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标杆供应商
下期我们不见不散~