• 请不要在回答技术问题时复制粘贴 AI 生成的内容
abc9999
V2EX  ›  程序员

各位架构师,服务调用链路上某个服务报错怎么排查?

  •  1
     
  •   abc9999 · Oct 24, 2023 · 3975 views
    This topic created in 1107 days ago, the information mentioned may be changed or developed.
    服务 A 调用服务 B ,服务 B 再调用服务 C...,整个链路上如果某个服务报错,怎么排查?
    如何确定是哪个服务报错?
    如果是 B 报错,如何查看 A 传递给 B 的参数?如果 B 有多个副本,怎么知道是哪个副本抛异常?
    18 replies  •  2023-10-24 11:30:11 +08:00
    twofox
    twofox
    Oct 24, 2023
    1
    你需要一个分布式链路追踪组件
    Java 有 Skywalking 或者是 es 的 apm
    abc9999
    abc9999
    OP
    Oct 24, 2023
    2
    @twofox 只用过 sleuth+zipkin ,但是它看不到是服务的哪个副本报错,Skywalking 可以做到吗?
    twofox
    twofox
    Oct 24, 2023
    3
    @abc9999 skywalking 我都没怎么用过,但我记得 elastic apm 是可以的
    xuanbg
    xuanbg
    Oct 24, 2023
    4
    你没有日志的么?哪个服务的哪个类里的哪个方法抛异常在日志里都能看得到啊。如果只需要定位异常,这就够了。但有时候异常是上游数据引发的,那就需要链路追踪,通过一个 requestId 把一串调用日志串起来看。这个可以使用第三方的成熟产品,也可以自己一路传 requestId ,打日志的时候一起打出来就行。
    xwayway
    xwayway
    Oct 24, 2023
    5
    @abc9999 统一日志看不到 host 的么?
    overthemoon
    overthemoon
    Oct 24, 2023
    6
    elk
    jtwor
    jtwor
    Oct 24, 2023
    7
    skywalking 能做到,就是个链路追踪。不理解为什么要确认是哪个副本,既然都报错了,在那个副本执行都应该报错把。
    crazywind
    crazywind
    Oct 24, 2023
    8
    zipkin 是可以看到调用链路的吧
    abc9999
    abc9999
    OP
    Oct 24, 2023
    9
    @xuanbg 公司没用过,就是一些想法而已,你的意思大概明白了,需要依靠链路日志,我自己搭个环境再看看,感谢
    abc9999
    abc9999
    OP
    Oct 24, 2023
    10
    @xwayway 刚看了下,可以看到 ip ,以前没注意到这点,感谢
    abc9999
    abc9999
    OP
    Oct 24, 2023
    11
    @crazywind 可以看到链路上的每台机器 ip ,之前没注意,感谢
    datoujiejie221
    datoujiejie221
    Oct 24, 2023
    12
    如果看日志的话,按 opentrace 那套标准打印 log ,elk 做采集分析就可以,我们现在采集的时候是把 k8s 的 podname 加上的
    skywalking 可以定位到示例,但是我们用主要是用到指标的监控,快速定位哪个服务拖慢了速度
    abc9999
    abc9999
    OP
    Oct 24, 2023
    13
    @jtwor 是的,一般是因为上游数据有问题,跟哪个副本没关系
    8355
    8355
    Oct 24, 2023
    14
    微服务->全链路 -> 网关->防雪崩
    dif
    dif
    Oct 24, 2023
    15
    可以装个 pinpoint ,或者其他什么 apm 的东西
    coderxy
    coderxy
    Oct 24, 2023
    16
    链路追踪 一看就知道哪里报的错
    tanxnative
    tanxnative
    Oct 24, 2023❤️1
    17
    opentelemetry
    snb9
    snb9
    Oct 24, 2023
    18
    sleuth + elk ( filebeat 收集)可以准确跟踪到机器,skywalking 辅助使用。单 skywalking 长链路查找有点麻烦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2880 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 109ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    ♥ Do have faith in what you're doing.