后端接口时通时不通,团队全链路排查实战

news2024/10/2 19:12:08

背景:

1 最近团队做了一套系统,已经临近上线了;

2 后端的服务和前端的代码都是新写的,两边的服务器,数据库也都是新申请的;

3 本来测试的时候用的测试服务器,一切都挺好的,但部署到线上服务器后,就是接口时通时不通的,眼看就要对外开放了,急得不行,领导也催,测试也催,客户也催

4 因为后端接口还调远在印度服务器部署的接口了,导致那边的客户也很关心,也问进展如何

5 因为已经连日加班,几个人已经头脑混乱了,这一下搞得更是吃不下饭,睡不着觉了

6 于是,我痛定思痛,决定出去溜达一圈

7 终于在溜达到一个超时的时候,买了瓶可乐喝,这一口冰凉的可乐一喝,我顿时觉得,不行,我得赶紧回去了,我得地毯式的进行一次全链路检测

 

 

1、先从前端入手 

先从前端入手,又仔细检查了一遍,是不是自己的入参,

在某种情况下是否会出现异常,是否会某些字段转换出现问题,

然后把发送AJAX请求前的每一步数据组装都打印输出,一直到最后的submit阶段

再到封装的axios里的每一步都打印出来,看是否会因为某一步稍微写错一点而走到catch

然后我又和服务端约定,写了两个超级简单的接口,我不需要入参,只是简单查询一下

第一个接口只是简单调用后端接口,直接返回数据

第二个接口在第一个接口基础上,他再调用印度那边一个接口,一旦通了就返回,也不做过多处理

结果发现:

1、纯粹调用后端的这个接口总是通的

2、需要调用印度的那个接口会有不通的问题

2、外部接口测试

通过上一步就发现了,一定是调用外部接口这一步出问题了。那么就没有前端同学的锅了。

然后我们就想着跟领导说一声,远在印度的接口,经过了重重阻碍才把数据返回来,应该是网络问题,就这样结案吧。

然后领导说这个项目上线后,每人会奖励5个W,所以,不要放P好吧。

于是后端用postman开始本地调用外部接口,不断的重试,经过了几个人,好半天的鼠标狂点,发现,貌似也不是网络的问题。

然后后端就非常客气的跟外部接口负责人非常客气的说:哥,你能看一下那边的监控吗,就帮我看一会儿,可以吗?

人家非常客气的说:来吧,陪你搞到天亮都没问题

哥,你那边收到结果了吗?

收到了,给你返回去了

好的,返回来了,我看见了

。。。。。。

哥,你那边收到结果了吗?

收到了,给你返回去了

好的,返回来了,我看见了

。。。。。。

哥,你那边收到结果了吗?

没有,再来一次呢

我又来了一次,收到了吗?

没有,真的没有,给你截个图你看看

其实我们特别想跟领导说:就是网络问题啊,一定是网络问题啊

 

 3、开始排查后端代码

已经是后半夜了,有人就在那里说,后端你看看,是不是你的代码哪里报错了,赶紧看,5个W啊

于是后端打开了代码,开始多个地方打印输出,然后部署到线上服务器去

经过测试一轮搞,终于发现,你看,你是不是报错了,

再经过仔细一比对,果然是,人家外部接口的一个入参没有传过去

小问题

后端加快单身多年的手速,自己测了测没问题,又部署到线上服务器去

大家以为差不多了,报错也没有了,每个人都打开网页点了点,好啦

但是又有一个倒霉鬼说:不行,还是不出数据

然后我们也点了点,果然,还是他出我不出,你出他不出,后端送了口气,看来我也可以当个不粘锅了

4、肯定是某台机器坏了

当大家一筹莫展的时候,有人提出,会不会是某天机器坏了。

大家频频点头,嗯,有道理

于是把3台机器挨个冷备掉,然后再一台一台的打开

因为之前也是半天是通的,是不是又不通,页面刷着刷着又通了,所以大家强忍住困意,换个浏览器刷一会儿,请了缓存刷一会儿,打开手机别的浏览器刷一会儿

经过小伙伴们,不断测试,果然,竟然有2台机器是坏的。

网管,大佬,哥,别睡了,快,你给我们批的这2台机器不行,对,就是xxx.xx.x.23  还有xxx.xx.x.24这两台,

好的,等一会儿啊,我这就弄

于是我们都笑了笑,5个W即将到手

过了半个小时,咋还没申请下来

网管大佬,机器,机器,我去,你又睡着了,快醒醒啊,项目上线了给你介绍个对象,对,可好看了,跟仙女似的

终于过了5分钟,机器下来了

5、机器全部解除冷备,准备迎接胜利

新机器下来了,大家眼里闪着泪光,把机器全部解除冷备,开始测试

经过大家一顿猛如虎的操作,外部接口负责人也在不停的盯着监控

其实大家都不动了,开始收拾东西了,只有测试还在不停的刷着页面

结果并不是胜利的号角,结构还是老样子,还是有接口不通的情况

准备收拾书包的人往那一靠,什么破机器啊,再一台一台的试吧

还是重复第4步的操作,新申请的2台机器还是不行

网管,你别睡了,我都申请了5台机器了,为啥就一台行,另外4台都是坏的

你看看操作文档,文档写的挺清楚的

看你妹夫的操作文档啊,你们那破文档那么多,我看哪一步,我要给你重装个系统,再搞个镜像还是咋地

你再不支棱起来,我就跟领导说,你的机器有问题导致的

6、请不要小瞧我们公司的网管

网管终于支棱起来了,一边打着电话,一边听见他在那边噼里啪啦的,远程操作着这2台机器

我们跟他说了一下当前的场景,听见他嘎巴嘎巴两声,深吸一口气,然后咳嗽了一声

嗯,机器是好机器

然后我们测试在这边大声喊,这两台机器调不通印度那边的接口

然后网管很快就搞定了,来试一下吧

大家这次都清醒了,已经是后半夜快6点了,大家点了外卖早点,又开始刷,外部接口那哥们,也真是敬业,一直坚守着

终于在长达20分钟的各种设备,各种浏览器,各种清缓存,各种访客模式,各种无痕模式的测试后,发现,真的是好了

最后网管也起床了,都准备来公司上班了。他电话那头说,应该是忘了给你们开外网权限了。

我们集体大声:害!!!

 

7、5个W 

我们一直关心的5个W,也如约而至

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于分发与计算的GRTN全球实时传输网络

一张能同时满足「分发」与「计算」需求的网。 从直播趋势看「分发」与「计算」 阿里云直播产品架构图中,主要分为端和云两个部分:在端侧,主要包含推流端和播放端;在云侧,一是基于分布式节点构建的传输网,二…

mosquitto部署mqtt broker 并测试订阅与发布

mosquitto部署mqtt broker 并测试订阅与发布 1,MQTT协议介绍 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型…

如何使用phpstudy在服务器上发布Discuz_X3.4_SC_UTF8_20220811和zzcms2023

Web-ZZCMS: 源码下载:http://www.zzcms.net/about/6.html Web-Discuz: 源码下载:https://www.discuz.net/ 首先安装phpstudy,傻瓜式安装教程,如果中途 遇到报错比如我遇到的是Apache未启动,80端…

Ansible自动化部署安装openGauss3.1企业版单机

文章目录一、背景二、环境准备三、具体实施步骤3.1、安装ansible3.2、配置主机清单3.3、测试主机连通性3.4、创建相关目录3.5、下载openGauss软件包到files目录3.6、创建变量文件3.7、创建安装时需要的xml模板3.8、创建任务文件四、执行自动化安装4.1、校验语法4.2、自动化安装…

CAD新手必练图形三

这次说的这个CAD新手必练图形,用到了CAD直线、圆、多边形、修剪和旋转等多个CAD功能命令,一起跟着操作一下吧 目标图形 操作步骤 1.使用CAD直线命令绘制一条垂直的直线和两条水平的直线,两条水平的直线之间的距离为15,并将他们修…

【CSDN竞赛第11期】编程竞赛总结

文章目录前言/背景题目与解题代码1. 圆小艺2. K皇把妹3. 筛选宝物4. 圆桌CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 前言/背景 目前已经连续参加10次CSDN的编程竞赛了,这种比赛挺有意义,希望一直举办下去! 题…

JDBC 访问数据库

文章目录一、实验目的二、实验要求三、实验内容1、设计数据库表2、定义实体类3、定义数据库连接类4、实现数据库的增删改查5、测试用例一、实验目的 理解 JDBC 的工作原理,掌握 JDBC 访问数据库; 掌握常见数据库 MYSQL ; 二、实验要求 理解…

【华为上机真题 2022】字符串序列判定

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

中断系统中的设备树__中断号的演变与irq_domain

1 中断号与硬件相关_号码固定 当我们的系统中只有一两个中断控制器时,上面的方法很有用,可以给每一个中断预先确定好他的虚拟中断号,但是当中断控制器越来越多、当中断越来越多,上述方法(virq和hwirq固定绑定)有缺陷: a. 增加工作…

马克思的手稿-第11届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第92讲。 蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选…

23软考备考已开始,网络工程师知识点速记~(2)

新一轮软考备考来啦~ 为了帮助大家提高备考效率,将2023上半年软考网络工程师知识点速记分享给大家,快来跟着一起打卡学习吧! 指令系统 指令系统是中央处理器所有指令的集合,通常一条指令可分解为操作码和地址码两部分&#xff…

python 从一道作业题到制作一个图形界面的“诈金花”游戏

题目很简单:就是自己写一个程序,实现诈金花游戏的发牌、判断输赢。 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢。 牌型: 豹子:三张一样的牌&am…

Fluent案例:肾动脉RDN治疗过程的仿真

1 问题背景 肾动脉消融(Renal denervation,简称RDN)是一种治疗高血压的办法,其基本原理为利用插入肾动脉的电极消融导管进行射频消融,使肾动脉血管壁附近的交感神经因高温而损伤失活,减少神经系统过度活跃的…

想转行做IC,却找不到适合自己的岗位?

想跨行从事IC行业,但是没有一个比较好的学历,也没有一个很好的专业,或者受限于各种各样的外在条件,那么在这个行业里面,到底有没有个岗位能够适合自己上手呢? 当然有,不是所有芯片岗位都要高学…

什么是自监督,自监督和有监督的区别什么是SSL

有监督 就是让机器做题目,给他标准答案 那无监督 可以自己推出来的吧 就是没有给标准答案 也就是label 或者在目标检测里面说是groundTruth 什么是Ground-truth,Ground-truth什么意思_:)�东东要拼命的博客-CSDN博客_…

基于日特征气象因素的支持向量机预测电力负荷(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

tkinter绘制组件(37)——普通图片

tkinter绘制组件(37)——普通图片引言布局函数结构添加图片图片缩放完整函数代码效果测试代码最终效果github项目pip下载结语引言 其实,本来不打算专门为TinUI写图片元素控件的,让编写者自行使用PhotoImage类和画布自带的create_…

[附源码]JAVA毕业设计计算机类课程实验平台(系统+LW)

[附源码]JAVA毕业设计计算机类课程实验平台(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

【编程题】【Scratch一级】2022.09 踢足球

踢足球 1. 准备工作 (1)选择背景Baseball 2; (2)删除默认的小猫角色,选择角色Ben和Soccer Ball。 2. 功能实现 (1)Ben初始造型为ben-a,初始位置为舞台左下角&#xf…

开发3年入职饿了么P6,全靠这份MyBatis学习笔记了

前言 相信大部分程序员工作中都有接触过MyBatis,那么它到底重不重要呢?答案是肯定的呀! 互联网公司基本都是用Mybatis做为持久层框架的,所以,Mybatis是一定要学的!!! 不管是在工作中…