当前位置:首页 > 科技  > 软件

好坑,流水号重复竟然导致了一次生产事故!

来源: 责编: 时间:2024-06-05 17:44:56 295观看
导读大家好,我是君哥。最近我负责的系统出了一次生产事故,这次事故竟然是因为流水号重复导致的。今天来给大家分享一下。1.问题背景这个流水号的使用场景是上游系统调用下游接口时传入一个唯一 ID,流水号这个参数在联调或定

大家好,我是君哥。7ay28资讯网——每日最新资讯28at.com

最近我负责的系统出了一次生产事故,这次事故竟然是因为流水号重复导致的。今天来给大家分享一下。7ay28资讯网——每日最新资讯28at.com

1.问题背景

这个流水号的使用场景是上游系统调用下游接口时传入一个唯一 ID,流水号这个参数在联调或定位问题时很方便。7ay28资讯网——每日最新资讯28at.com

我们系统中的流水号是一个 32 位的字符串,为了能让上下游系统联动,下游系统接到上游传过来的这个 ID 后,会取前 23 位,再自己拼接剩下 9 位,传到自己要调用的下游系统,这样整个调用链通过请求 ID 就可以快速串起来。7ay28资讯网——每日最新资讯28at.com

图片图片7ay28资讯网——每日最新资讯28at.com

2.流水号使用

在我的系统中,自己定义流水号的后 9 位,为了能够更清晰地从流水号中看到请求链上的系统调用关系,我们把流水号后 9 位定义成了系统编号(3位) + 子系统编号(2位) + 自增序列(4 位) 。7ay28资讯网——每日最新资讯28at.com

如下图,我的系统生成的流水号前 23 位来自上游,后 9 位是 001(系统编码) + 01(子系统编码) + (0 ~ 9999自增)。7ay28资讯网——每日最新资讯28at.com

图片图片7ay28资讯网——每日最新资讯28at.com

在我们的业务场景中,上游系统调用我的系统,我的系统有 10000 个流水号,支撑 10000 笔交易,理论上足够使用了。7ay28资讯网——每日最新资讯28at.com

不幸的,系统中的业务开发同事并没有注意到流水号生成规则,因为流水号生成工具是一个成熟的 util 类,大家直接调用获取流水号。7ay28资讯网——每日最新资讯28at.com

而这一次的事故中,我们的业务是一个批量业务,收到上游系统的请求后,我们的处理逻辑是读取合作方推送的文件,然后对每一个文件调用下游接口进行处理。每一个文件处理需要调用下游四个接口,每一个接口都需要新的流水号。7ay28资讯网——每日最新资讯28at.com

图片图片7ay28资讯网——每日最新资讯28at.com

这样我们就能看到流水号生成工具的瓶颈了,如果超过 2500 个文件,10000 个流水号就会被用完。而流水号生成工具的逻辑是如果流水号用完,就会从 0 开始重新生成,造成了流水号重复。7ay28资讯网——每日最新资讯28at.com

下游系统会对流水号进行判断,收到重复的流水号,直接返回接口调用失败。因为失败的调用比较多,触发了生产告警。7ay28资讯网——每日最新资讯28at.com

3.事故处理

比较庆幸的是,这次事故并没有造成交易阻断、现金损失、客户体验差等问题。还有一点幸运是正好赶在上线窗口前发现了,没有走紧急上线流程。要知道,紧急上线对团队和个人的绩效考核都会产生影响。7ay28资讯网——每日最新资讯28at.com

但交易失败的三方文件会影响合规检查,必须进行交易补偿。7ay28资讯网——每日最新资讯28at.com

我们团队做的修复工作是及时修改了流水号生成规则,我们把后面 6 为定义成自增的序列,这样足够满足所有场景的使用了,而我们保留系统编码,对系统交易链路追踪是非常必要的。7ay28资讯网——每日最新资讯28at.com

上线后,请上游系统再次触发接口调用,对之前失败的三方文件进行补偿处理。7ay28资讯网——每日最新资讯28at.com

4.聊聊事故

无论在国企、银行还是互联网公司上班,生产事故的出现,都可能会影响到公司正常业务的开展,甚至让业务遭受损失。严重的,事故当事人会收到严格处罚,甚至被淘汰掉。7ay28资讯网——每日最新资讯28at.com

除了对考核的影响,解决故障的过程也是非常耗时的。7ay28资讯网——每日最新资讯28at.com

4.1 应急措施

在没有定位到问题之前,必须先采取紧急措施接触生产告警,以免造成大的业务损失。应急措施包括但不限于重启服务、执行应急脚本、业务降级等。7ay28资讯网——每日最新资讯28at.com

4.2 定位问题

采用应急手段解决故障后,就要开始定位问题了。有的问题可能不太好定位,尤其是一些老代码,作者已经离职,也没有留下什么详细的文档。接手人可能之前看过代码,但是过了很长时间又记不清了。7ay28资讯网——每日最新资讯28at.com

4.3 评估业务影响

再复杂的问题,最终肯定能定位到原因。接着就是评估业务影响,这一步也是必须要做的,因为多数情况下,对业务的影响大小决定了这次事故的级别,这项工作一般会有业务参与。7ay28资讯网——每日最新资讯28at.com

比如我过往的一家公司规定,故障超过 15 分钟,影响超过 100 笔订单的故障定义为一级故障。7ay28资讯网——每日最新资讯28at.com

4.4 向上汇报

接着就是给领导汇报,甚至需要层层汇报。这一步可以说是最难做的。7ay28资讯网——每日最新资讯28at.com

首先需要明确问题责任人或者责任团队,因为故障可能会影响到绩效考核,所以很多时候会遇到扯皮或帅锅的情况,没有一个领导愿意让自己的团队背锅。有时候把锅甩给中间件,数据库或其他底层组件,也是一个选择。7ay28资讯网——每日最新资讯28at.com

撰写事故报告也是非常耗时的一个工作,领导不可能像技术人员一样通过看代码了解事故原因,他们需要故障报告能够清晰易懂,甚至几句话就能讲明白。7ay28资讯网——每日最新资讯28at.com

4.5 复盘

事故复盘是为了让团队能够了解到故障的根本原因,作为经验教训,防止再犯。7ay28资讯网——每日最新资讯28at.com

5 总结

今天分享了我在工作中遇到的一次生产事故。生产事故除了影响业务正常运转,处理事故的过程也是非常花费时间和精力的。完全不出事故是不可能的,如果能对历史故障吸取教训,多花心思研究自己的系统,可以有效降低故障率。7ay28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-92145-0.html好坑,流水号重复竟然导致了一次生产事故!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 如何线程安全的使用 HashMap

下一篇: 架构本质和微服务,你了解吗?

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • 只需五步,使用start.spring.io快速入门Spring编程

    步骤1打开https://start.spring.io/,按照屏幕截图中的内容创建项目,添加 Spring Web 依赖项,并单击“生成”按钮下载 .zip 文件,为下一步做准备。请在进入步骤2之前进行解压。图
  • 自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • Windows 11发布,微软一改往常对老机型开放的态度

    距离 Windows 11 发布已经过去一周,在过去一周里,很多数码爱好者围绕其对 Android 应用的支持、对老机型的升级问题展开了激烈讨论。与以往不同的是,在这次大
  • 三翼鸟智能家居亮相电博会,让用户体验更真实

    2021电博会在青岛国际会展中心开幕中,三翼鸟直接把“家”搬到了现场,成为了展会的一大看点。这也是三翼鸟继9月9日发布了行业首个一站式定制智慧家平台后的
Top