「系统架构」什么是链路追踪?分布式系统如何实现链路追踪?( 四 )


接下来我们再来看 SkyWalking 与另一款业界比较知名的分布式追踪工具 Zipkin、Pinpoint 的对比(在采样率为 1 秒 1 个 , 线程数 500 , 请求总数为 5000 的情况下做的对比) 。
可以看到在关键的响应时间上 ,Zipkin(117ms) , PinPoint(201ms)远逊于 SkyWalking(22ms)!从性能损耗这个指标上看 , SkyWalking 完胜!
「系统架构」什么是链路追踪?分布式系统如何实现链路追踪?文章插图
再看下另一个指标:对代码的侵入性如何 。
ZipKin 是需要在应用程序中埋点的 , 对代码的侵入强 , 而 SkyWalking 采用 javaagent + 插件化这种修改字节码的方式可以做到对代码无任何侵入 。 除了性能和对代码的侵入性上 SkyWaking 表现不错外 , 它还有以下优势几个优势:

  • 对多语言的支持 , 组件丰富:目前其支持 Java、 .Net Core、PHP、NodeJS、Golang、LUA 语言 , 组件上也支持dubbo, mysql 等常见组件 , 大部分能满足我们的需求 。
  • 扩展性:对于不满足的插件 , 我们按照 SkyWalking 的规则手动写一个即可 , 新实现的插件对代码无入侵 。
以上虽然主要以SkyWalking为例来介绍链路追踪系统 , 但是并不是说其他链路追踪系统一点不适用 。 具体选择什么样的 , 大家可按实际场景灵活选择 。


推荐阅读