前面几篇文章提到了微服务相关系统的使用与搭建,在微服务架构下的问题也比较突出。正常系统下我们的每个请求都会在同一个系统中进行输出。但是在微服务架构中一个请求可能设置一到多个服务进行处理。服务之间相互依赖,服务之间形成一个调用链。如果调用链之间的某个服务出现故障那么整个调用链都将会受到影响。
为什么需要链路追踪
架构设计之初就提出了需要进行分布式链路追踪系统,而且当时也对需求进行了大概的一个推演。我们希望能够得到的是一个下图这样的结构。每次请求能够获取到该请求的调用链。
当然上图是一个正常的情况下的请求,异常情况下我们应该获得的是一个能够直接看到异常服务的状态(「服务D异常」)。
SkyWalking
面对这些情况,我们需要一个能够支撑起该需求的APM工具。目前主要的一些APM工具有,Cat,Zipkin,Pinpoint,SkyWalking。Zipkin是Twitter开源的,Pinpoint是韩国人开源的。Cat与SkyWalking均为国人开发的。所以在选择的时候主要关注的就是国人开发的.(英文不咋滴,怕看不懂文档..)
其实也大概的翻阅了一下相关的博客,得到了一相关选型的分析与各个工具之间的区别。做了一些排除项,最终选择为SkyWalking。
<