在掌握 Actuator 和 Hystrix 进行基础监控之后,我们需要进一步解决微服务间的通信可见性问题。
微服务依赖网络交互,而网络本身具有脆弱性且资源有限。为了了解请求经过了哪些微服务、延迟多少以及每个请求所耗费的时间,我们有必要追踪每个网络请求。只有这样,才能更准确地分析系统性能,解决潜在的系统问题。
针对这一痛点,业界常采用 Zipkin 配合 Spring Cloud Sleuth 来实现全链路追踪。Zipkin 是 Twitter 开源的分布式跟踪系统,基于 Dapper 论文设计,主要功能是收集系统的时序数据,从而追踪微服务架构中的延时等问题。它还提供了一个非常友好的界面,便于我们直观地分析追踪数据。
通过 Spring Cloud Sleuth,我们可以轻松集成 Zipkin 实现分布式追踪。在使用 Sleuth 时,有几个核心术语需要理解:
- Span(跨度):这是基本的工作单元。例如,在一个新建的 Span 中发送一个 RPC 请求,等同于发送一个回应请求,它记录了该次调用的详细信息。

