做业务系统的,经常有 bug,要是能复现的话,99.9%都能定位到原因;经常有些偶发的问题,涉及到的链路特别长( a 服务 -> b 服务 -> ...K 服务),很难确定具体是哪个部分有问题,关键也不熟悉各个服务的代码,查问题只能通过 kibana 上面的日志寻找线索,你们是怎么处理这类问题呢?
1
9yu 2020-07-27 12:39:38 +08:00 via Android
问熟悉服务的人啊,自己解决不了的问题就不要自己解决。
|
2
kop1989 2020-07-27 12:42:19 +08:00
只能各个业务单独输出日志,记录输入和输出。这样下次再出现就能判断出问题在哪。
偶发说明不是计算问题,所以优先排查涉及逻辑的模块,比如异步、队列、事务等。 |
3
Leigg 2020-07-27 12:51:32 +08:00 via Android
当前服务在返回错误时一定要打日志
|
5
zarte 2020-07-27 13:59:16 +08:00
有预生产环境么?
|
6
gggyyybbb 2020-07-27 14:06:11 +08:00
pinpoint 了解一下
|
7
freakxx 2020-07-27 14:17:36 +08:00
你先把握住大概流程,比如你说的 a --> b --> c --> d
你先缩小出现问题的地方。 比如直接去掉你熟悉的 a 和 d (按你描述,你一般在上游或者下游),你那么就只需要排查 b 和 c 。 然后你就看 c 入口的日志,没反应的话, 再看 b 入口和模块日志。 ================= 至于偶发的问题,这个我觉得是挺悖论的。。。 你在这个发生的地方,拿着它去上游回溯或者看下参数到这里是怎么转变,还是可以排查 |