Sleuth与Zipkin技术
Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案,Sleuth可以结合Zipkin做链路跟踪。Spring Cloud Sleuth的服务链路跟踪功能可以帮助我们快速发现错误根源,以及监控分析每条请求链路上的请求性能。Sleuth的主要工作原理是拦截请求,并在日志中加入额外的Span和Trace的相关信息。从Sleuth 2.0.0开始,Sleuth使用Brave作为调用链工具库。Brave是一个用于捕捉分布式系统之间调用信息的工具库,可以将这些信息以Span的形式发送给Zipkin。
Zipkin是一个分布式跟踪系统,用户可以将Sleuth发送的时序数据存储在Elasticsearch或者MySQL中,Zipkin UI根据数据存储显示服务之间的请求调用详情和依赖调用关系图。
Spring Cloud Sleuth的主要特性
● Sleuth的调用链消息日志采用[Appname,TraceID,SpanID,Exportable] 条 目 添 加 到 Slf4J MDCS , 该 日 志 格 式 兼 容Zipkin,其条目含义如下。
○ SpanID:发生的特定操作的ID。
○ Appname:记录Span的应用程序的名称。
○ TraceID:包含Span的延迟图的ID。
○ Exportable:是否应将日志导出到Zipkin。
● Sleuth具有采样和延迟分析等特性,减少了Sleuth日志采集输出对应用性能的影响,带内传播调用图相关数据,其他数据基于带外传播,可以向Zipkin系统报告查询和可视化分析。
● Sleuth提供进程之间的上下文传播,可以在Span上设置添加额外的信息,并通过HTTP给其他进程传递消息