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

事故02分析报告:慢查询+逻辑耦合导致订单无法生成

一、事故背景与现象

时间范围

  • 2022年2月3日 18:11~18:43(历时32分钟)

受影响系统

系统名称角色影响范围
dc3订单数据库主库订单生成、事务回滚
dc4订单数据库从库数据同步、容灾切换

业务影响

  • 核心业务:手机点餐、C扫B支付订单无法推送至POS系统,购物车初始化失败
  • 用户指标:下单成功率下跌至85%(基线99.9%)
  • 技术指标
    • 数据库主库CPU峰值98%,连接池耗尽

    • swan_saga_local_branch_transaction表插入RT飙升至1.8s

    • 数据库主库因慢查询触发级联雪崩,sjstrmsodc4主库发生ORC切换失败,连接池耗尽。

    • 订单号生成服务与事务回滚逻辑共用集群,故障扩散至上游服务(odc.orderprocess、odc.menu等)。

    • 其他服务访问sjstrmsodc4开始出现获取连接超时


二、处理流程与关键操作

时间线

时间节点关键操作数据指标/效果
18:11上游服务触发超时告警接口超时率75%(持续15分钟)
18:12DBA定位慢SQL(SQL ID:2171f2ab)慢查询数1200+/分钟
18:15启动跨团队协作(DBA/SRE/Swan)参与团队:DBA 3人、SRE 2人、研发4人
18:23dc4主库ORC切换失败主从延迟峰值90秒
18:27分阶段限流(50%→10%→0%)QPS从5000降至200
18:29PT-KILL清理慢查询终止慢查询4500+条,CPU回落至40%
18:42修复索引(新增idx_xid_branch查询耗时从1.8s降至5ms
18:43放开限流,服务恢复推单成功率恢复至99.9%

核心处置手段

  1. 限流与熔断

    • 动态调整SQL流量,优先保护核心链路
    • 使用pt-kill终止慢查询,释放连接池资源
  2. 索引修复

    • 修正联合索引顺序为(xid, branch_id),消除全表扫描
    • 使用gh-ost工具执行在线DDL,主从同步延迟归零
  3. 业务补偿

    • 人工补推**15%**异常订单(依赖商家手动处理)

三、根因分析

直接原因

分类描述
索引设计缺陷swan_saga_local_branch_transaction表索引顺序错误(idx_bid_xid),导致DELETE语句全表扫描
业务逻辑耦合订单生成与事务回滚共享数据库集群,缺乏物理隔离

间接原因

分类描述
巡检机制失效全表扫描检测阈值过高(1000行),未覆盖高频低行数场景
预案缺失无数据库故障降级工具,依赖人工补偿(耗时2小时以上)

在这里插入图片描述

四、改进措施与验证

技术优化

  1. 索引治理

    • 建立联合索引顺序审核规则,覆盖**100%**高频操作表
    • 重建swan_saga系列表索引,查询性能提升90%
  2. 熔断升级

    • 开发多维度限流工具(SQL ID + 服务标签),限流覆盖率提升至95%

架构解耦

措施预期效果进度
订单生成服务独立部署降低跨服务影响80%2022Q3落地
事务回滚表迁移与核心业务物理隔离已完成

监控增强

  • 全链路追踪:部署慢SQL实时指纹分析,响应时间>50ms自动告警
  • 动态阈值调整:全表扫描阈值降至500行,覆盖高频场景

五、系统性改进模型

改进维度具体措施预期收益
技术债务治理索引顺序强制审核(Code Review)减少**70%**索引缺陷引发的故障
容量韧性核心集群QPS弹性扩容(基线×200%)峰值承载能力提升至1.2万QPS
组织协同DBA-研发-Swan联合巡检机制高风险SQL漏检率下降85%
故障自愈自动化补偿工具 + 无损降级策略MTTR从32分钟缩短至8分钟

六、经验总结

技术视角

  • 索引即资产:高频表需定期审计索引命中率,纳入发布流程卡点
  • 容量兜底:核心服务预设弹性扩缩容策略,避免级联故障

管理视角

  • 跨团队协作:建立常态化巡检机制,提前暴露耦合风险
  • 预案演练:通过真实场景验证工具有效性(如限流覆盖率)

最终结论:通过索引治理、逻辑解耦与自动化工具建设,系统性降低数据库级联故障风险,保障订单核心链路SLA≥99.99%

相关文章:

事故02分析报告:慢查询+逻辑耦合导致订单无法生成

一、事故背景与现象 时间范围 2022年2月3日 18:11~18:43(历时32分钟) 受影响系统 系统名称角色影响范围dc3订单数据库主库订单生成、事务回滚dc4订单数据库从库数据同步、容灾切换 业务影响 核心业务:手机点餐、C扫B支付订单无法推送至…...

vant2 vue2 两个输入框联动验证遇到的问题

需求是两个输入框&#xff0c;一个输上限A&#xff0c;一个输下限B <van-fieldv-model"formData.upperLimit"name"upperLimit"type"number"label"上限"required:formatter"formatter"/><van-fieldv-model"for…...

硬件工程师入门教程

1.欧姆定律 测电压并联使用万用表测电流串联使用万用表&#xff0c;红入黑出 2.电阻的阻值识别 直插电阻 贴片电阻 3.电阻的功率 4.电阻的限流作用 限流电阻阻值的计算 单位换算关系 5.电阻的分流功能 6.电阻的分压功能 7.电容 电容简单来说是两块不连通的导体加上中间的绝…...

如何使用Docker搭建哪吒监控面板程序

哪吒监控(Nezha Monitoring)是一款自托管、轻量级的服务器和网站监控及运维工具,旨在为用户提供实时性能监控、故障告警及自动化运维能力。 文档地址:https://nezha.wiki/ 本章教程,使用Docker方式安装哪吒监控面板,在此之前,你需要提前安装好Docker. 我当前使用的操作系…...

python-leetcode 45.二叉树转换为链表

题目&#xff1a; 给定二叉树的根节点root,请将它展开为一个单链表&#xff1a; 展开后的单链表应该使用同样的TreeNode,其中right子指针指向链表中的下一个节点&#xff0c;而左子指针始终为空 展开后的单链表应该与二叉树先序遍历顺序相同 方法一&#xff1a;二叉树的前序…...

uni小程序wx.switchTab有时候跳转错误tab问题,解决办法

在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候&#xff0c;先发送了一个请求&#xff0c;然后执行跳转到tab菜单&#xff0c;但是这个时候&#xff0c;出错了........也是非常的奇怪&#xff0c;不加请求就没问题......但是业务逻辑就是要先执行某个请…...

【一起学Rust | 框架篇 | Tauri2.0框架】在Tauri应用中设置Http头(Headers)

文章目录 前言一、配置准备1. 检查版本2. 使用条件3. 支持的请求头&#xff08;并不是全部支持&#xff09; 二、使用步骤1. 如何配置header2. 框架集成1. 对于Vite系列、Nuxt、Next.js这种前端框架Vite系列框架Angular系列框架Nuxt系列框架Next.js系列框架 2. 对于Yew和Leptos…...

STM32G473VET6 在 Keil MDK 下手动移植 FreeRTOS 指南

下面将详细介绍如何在 Keil MDK 环境下将 FreeRTOS 手动移植到 STM32G473VET6 微控制器上。内容涵盖工程创建、获取源码、文件组织、移植层适配、测试任务编写以及编译调试等步骤。 1. 工程搭建&#xff08;Keil 项目创建&#xff09; 创建基础工程&#xff1a;首先准备一个基…...

波导阵列天线 学习笔记11双极化全金属垂直公共馈电平板波导槽阵列天线

摘要&#xff1a; 本communicaition提出了一种双极化全金属垂直公共馈电平板波导槽阵列天线。最初提出了一种公共馈电的单层槽平板波导来实现双极化阵列。此设计消除了传统背腔公共馈电的复杂腔体边缘的必要性&#xff0c;提供了一种更简单的天线结构。在2x2子阵列种发展了宽十…...

DeepSeek-R1自写CUDA内核跑分屠榜:开启GPU编程自动化新时代

引言 在AI领域&#xff0c;深度学习模型的性能优化一直是研究者们关注的核心。最近&#xff0c;斯坦福和普林斯顿的研究团队发现&#xff0c;DeepSeek-R1生成的自定义CUDA内核不仅超越了OpenAI的o1和Claude 3.5 Sonnet&#xff0c;还在KernelBench框架中取得了总排名第一的好成…...

001 Kafka入门及安装

Kafka入门及安装 文章目录 Kafka入门及安装1.介绍Kafka的基本概念和核心组件 2.安装1.docker快速安装zookeeper安装kafka安装 添加topic删除topickafka-ui安装 2.Docker安装&#xff08;SASL/PLAIN认证配置-用户名密码&#xff09; 来源参考的deepseek&#xff0c;如有侵权联系…...

2024 年出现的 11 大数据收集趋势

数据收集趋势的出现是对技术进步、企业需求和市场波动的回应&#xff0c;我们对 2025 年的预测涵盖了所有方面。物联网和人工智能等前沿技术将改变组织收集和处理数据的方式&#xff0c;法规将促使它们更加细致地对待数据&#xff0c;而消费者对增强现实和虚拟现实的兴趣将为数…...

动态内容加载的解决方案:Selenium与Playwright对比故障排查实录

方案进程 2024-09-01 09:00 | 接到亚航航班数据采集需求 2024-09-01 11:30 | 首次尝试使用Selenium遭遇Cloudflare验证 2024-09-01 14:00 | 切换Playwright方案仍触发反爬机制 2024-09-01 16:30 | 引入爬虫代理IPUA轮换策略 2024-09-02 10:00 | 双方案完整实现并通过压力测试故…...

OSPF BIT 类型说明

注&#xff1a;本文为 “OSPF BIT 类型 | LSA 类型 ” 相关文章合辑。 机翻&#xff0c;未校。 15 OSPF BIT Types Explained 15 种 OSPF BIT 类型说明 Rashmi Bhardwaj Distribution of routing information within a single autonomous system in larger networks is per…...

java excel xlsx 增加数据验证

隐藏表下拉框 // 创建隐藏工作表存储下拉框数据String hiddenSheetName "HiddenSheet"System.currentTimeMillis();Sheet hiddenSheet workbook.createSheet(hiddenSheetName);//设置隐藏sheetworkbook.setSheetHidden(workbook.getSheetIndex(hiddenSheetName), …...

React + TypeScript 数据血缘分析实战

React TypeScript 数据血缘分析实战 目录 技术选型与架构设计核心概念解析基础场景实现 场景一&#xff1a;visx库基础血缘图实现场景二&#xff1a;React-Lineage-DAG企业级方案场景三&#xff1a;动态数据源与复杂交互 TypeScript类型系统深度优化性能优化与工程化实践开源…...

魔搭 ModelScope 模型下载

wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run sudo sh cuda_12.6.0_560.28.03_linux.run# pip -V pip 24.3.1 # pip3 -V pip 24.3.1设置pip镜像源 # pip config set global.index-url https://mirrors.…...

WorldQuant Brain的专属语言——Fast Expression

使用brain需要的编程语言 在使用BRAIN平台时往往不需要事先有编码背景&#xff0c;因此小白也能很快对其上手&#xff0c;但有经验的程序员来讲&#xff0c;该平台暂时没有禁止API通信低强度进行时的程序化访问&#xff08;但是非常不好意思&#x1f623;怎么访问我没找到&…...

在低功耗MCU上实现人工智能和机器学习

作者&#xff1a;Silicon Labs 人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;技术不仅正在快速发展&#xff0c;还逐渐被创新性地应用于低功耗的微控制器&#xff08;MCU&#xff09;中&#xff0c;从而实现边缘AI/ML解决方案。这些MCU是许多嵌入式…...

MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序

MSSQL2022导入Excel的一个错误&#xff1a;未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序 一、导入情况二、问题发现三、问题解决 最近在安装新版SQLServer SSMS 2022后&#xff0c;每次导入Excel都会出现错误提示&#xff1a;未在本地计算机上注册“Microsoft.…...

openclaw部署oauth模式codex无法正常登录

windows&#xff1a; openclaw onboard --auth-choice openai-codex 执行后&#xff0c;codex浏览器可以登录&#xff0c;但是终端中返回403 这里报错可以看到是region不符合&#xff0c;可以看下vpn中是否开启了tun模式&#xff0c;开启后可以测试一下地区 curl.exe https:/…...

第三部分:第3章_OpenStack所需RabbitMQ消息队列安装并配置

第三部分:第3章_OpenStack所需RabbitMQ消息队列安装并配置 //控制节点执行,本案例中node1节点// 3.1、安装并配置RabbitMQ消息队列服务 [root@openstack ~]# yum install -y rabbitmq-server[root@openstack ~]# systemctl enable rabbitmq-server.service [root@openstac…...

为什么92%的.NET开发者在.NET 9中AI推理失败?5个被官方文档隐藏的关键配置陷阱

第一章&#xff1a;.NET 9 AI推理能力演进与核心定位.NET 9 将原生 AI 推理能力深度融入运行时与 SDK 生态&#xff0c;标志着 .NET 从“通用开发平台”向“AI-ready 应用平台”的战略跃迁。这一演进并非简单封装第三方模型 API&#xff0c;而是通过轻量级推理引擎集成、统一张…...

造相Z-Image模型v2传统艺术风格专题:水墨、版画与油画的数字重生

造相Z-Image模型v2传统艺术风格专题&#xff1a;水墨、版画与油画的数字重生 当千年传统艺术遇见现代AI技术&#xff0c;会碰撞出怎样的数字火花&#xff1f; 最近深度体验了造相Z-Image模型v2在传统艺术风格方面的表现&#xff0c;不得不说&#xff0c;这个模型在模拟水墨、版…...

从原理到实践:深入理解react-native-fetch-blob的底层架构设计

从原理到实践&#xff1a;深入理解react-native-fetch-blob的底层架构设计 【免费下载链接】react-native-fetch-blob A project committed to making file access and data transfer easier, efficient for React Native developers. 项目地址: https://gitcode.com/gh_mirr…...

Phi-4-mini-reasoning在中小学数学辅导中的应用:自动解题与答案验证

Phi-4-mini-reasoning在中小学数学辅导中的应用&#xff1a;自动解题与答案验证 1. 模型介绍 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型&#xff0c;特别擅长处理数学题、逻辑题等需要多步分析和简洁结论输出的场景。与通用聊天模型不同&#xff0c;它更专注于…...

OpenClaw新手避坑指南:Qwen3-14B镜像部署的5个常见失误

OpenClaw新手避坑指南&#xff1a;Qwen3-14B镜像部署的5个常见失误 1. 为什么需要这份避坑指南 第一次在本地部署OpenClaw对接Qwen3-14B镜像时&#xff0c;我踩遍了所有能想到的坑。从CUDA版本冲突到显存溢出&#xff0c;从端口占用到凭证失效&#xff0c;整个过程就像在玩&q…...

WPF Chart控件从入门到精通:手把手教你打造动态数据看板

WPF Chart控件从入门到精通&#xff1a;手把手教你打造动态数据看板 在数据驱动的时代&#xff0c;能够直观呈现业务指标的动态数据看板已成为企业决策的标配工具。作为.NET开发者&#xff0c;掌握WPF Chart控件的深度应用&#xff0c;意味着你能够快速构建专业级的数据可视化解…...

MSYS2安装教程

https://blog.csdn.net/yeeeee_yee/article/details/145635436...

嵌入式飞控信号滤波:SMA/EMA/互补滤波与卡尔曼简化实现

1. NexgenFilter 库概述&#xff1a;面向嵌入式飞行控制的轻量级信号处理工具集NexgenFilter 是专为 Nexgen Magpie 无人机飞控系统设计的一套高性能、低开销数字滤波与噪声生成库。它并非通用 DSP 库&#xff0c;而是深度嵌入在实时性严苛、资源受限的 MCU&#xff08;如 STM3…...