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

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

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

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

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

1.问题背景

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

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

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

2.流水号使用

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

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

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

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

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

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

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

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

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

3.事故处理

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

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

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

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

4.聊聊事故

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

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

4.1 应急措施

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

4.2 定位问题

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

4.3 评估业务影响

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

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

4.4 向上汇报

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

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

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

4.5 复盘

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

5 总结

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

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

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

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

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

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾“低价”口号。而过去与他们错位竞争的拼多多,靠
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
Top