Archi - 运维 - 一个经过10个服务的 API 请求,出现了随机无法访问的故障,如何解决

发布时间 2023-11-10 10:42:49作者: frank_cui

问题描述

一个 API 请求,出现了随机无法访问的故障,而这个 API 可能会经过 5-10 个服务,怎么快速定位是哪一个服务出现问题?

 

解决方案

对于每一个请求,都会分配一个唯一的请求编号(requestId),在经过每一个服务的时候,都带上这个请求编号,每个服务都把这个请求的输入和输出记录下来,输入的 url 参数是什么?http 的 header 是什么?输出的状态码是什么,输出内容的大小是什么?如果出错,异常信息包括错误堆栈是什么? 当出现故障的时候,找到一个有问题的 requestId,根据这个 requestId 去日志分析系统查询相关的所有服务的日志,这样马上就可以看出来哪一个服务返回的结果是有问题的。