SpringCloud微服务_4 Sleuth+Zipkin请求服务链路动态追踪

         SpringCloud微服务_4 Sleuth+Zipkin请求服务链路动态追踪

                                                                                                                               作者:田超凡

版权所有,转载请注明原作者,仿冒侵权必究法律责任

SpringCloud2.0 提供基于Sleuth+Zipkin实现请求服务链路动态追踪,可以对每次请求的完整生命周期进行直观的分析和动态追踪,主要原理是把每次请求的过程横切为多个时间片,包括Client Sent(CS),Server Received(SR),Server Sent(SS),Client Received(CR)四个时间片区,采用时序图的展示形式通过Zipkin动态渲染,Sleuth把服务和服务之间的调用顺序以及处理请求各阶段时间片信息收集起来并上报给Zipkin进行动态渲染。采用链式追踪方式,把接收到请求的第一个服务作为Root Span,服务和服务之间调用作为Root Span的子Span和孙子Span,处理请求的每个服务都是一个Span(Sleuth服务链路追踪的基本计量单元),当服务器处理请求完毕并返回响应以后,所有处理过请求的服务Span将会构建成一个Annotation树,每一个节点都是一个Span,所以在基于Sleuth实现请求服务链路追踪过程中,每一个处理过当前请求的服务都是Span,每一个请求从服务器接收到返回响应过程都是Annotation,Sleuth对于每一个请求的服务器处理过程生成的Annotation树都会生成不同Annotation ID进行唯一标识并上报给Zipkin进行数据渲染展示。总的来说,基于Sleuth+Zipkin实现请求服务链路动态追踪对于大规模的微服务集群构建的项目而言(尤其是已经上线的外网项目而言),通过请求服务链路动态追踪可以在响应超时,网络延迟,服务故障等问题诊断方面起到重要作用,方便开发人员快速定位问题并及时给出解决方案,同时对于响应过慢和性能优化问题也可以起到一个参考作用,通过不同时间片之间的计算可以获取每个链路执行所消耗的时间,通过Zipkin时序图也可以直观查看服务调用顺序和服务与服务之间的依赖关系。Sleuth+Zipkin作为新生代SpringCloud全家桶中的成员,通过强大的服务链路动态追踪机制必将为微服务治理和容灾起到至关重要的拍错和故障诊断作用。

发布了100 篇原创文章 · 获赞 10 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_30056341/article/details/105490278