返回

中小企业链路追踪如何轻松实现?Spring Cloud Alibaba + Spring Cloud Sleuth + Zipkin为你保驾护航

后端

背景与选型

背景

在现在阶段,微服务已经普遍的应用在中小企业了,那么出现了一个问题,当下图D服务出现错误时,你不知道是B、C、D那个服务出现了错误。所以需要使用微服务链路追踪准确快速的定位。

图片

选型

目前市面上有很多链路追踪工具,如SkyWalking、Pinpoint、Zipkin、Jaeger等。考虑到中小企业的实际情况,我们选择使用Spring Cloud Alibaba、Spring Cloud Sleuth和Zipkin来实现链路追踪。

  • Spring Cloud Alibaba:阿里巴巴开源的微服务框架,提供了丰富的微服务组件,包括服务发现、配置中心、服务治理等。
  • Spring Cloud Sleuth:Spring Cloud提供的链路追踪组件,支持多种链路追踪工具,包括Zipkin、Jaeger等。
  • Zipkin:Twitter开源的链路追踪工具,提供了可视化的追踪界面,可以帮助用户快速定位问题。

Spring Cloud Sleuth

Spring Cloud Sleuth是一款链路追踪工具,它提供了一套完整的链路追踪解决方案,包括日志收集、日志分析和数据存储。Sleuth支持多种日志收集工具,如Log4j、Logback等,也支持多种日志分析工具,如Elasticsearch、Kafka等。

Sleuth的核心概念是Span,它代表了一个服务调用的一个步骤。每个Span都有一个唯一的ID,可以用来追踪服务的调用关系。Sleuth还提供了Trace,它是多个Span的集合,代表了一个完整的服务调用链路。

Zipkin

Zipkin是一款分布式链路追踪系统,它可以收集、存储和分析链路追踪数据。Zipkin提供了一个可视化的追踪界面,可以帮助用户快速定位问题。

Zipkin支持多种数据存储方式,如MySQL、Elasticsearch、Kafka等。它还提供了丰富的查询功能,可以帮助用户快速找到所需的信息。

Spring Cloud Alibaba + Spring Cloud Sleuth + Zipkin集成

下面介绍如何将Spring Cloud Alibaba、Spring Cloud Sleuth和Zipkin集成起来,以实现链路追踪。

  1. 添加依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
  1. 配置Sleuth
spring.sleuth.sampler.probability=1.0
spring.sleuth.exporter.zipkin.enabled=true
spring.sleuth.exporter.zipkin.endpoint=http://localhost:9411/api/v2/spans
  1. 配置Zipkin
spring.zipkin.base-url=http://localhost:9411
  1. 启动应用

在启动服务时,可以看到Sleuth已经自动将链路追踪信息输出到了控制台。

[sleuth.zipkin] 2022-09-04 15:20:39.159  INFO [main] o.s.c.s.ZipkinSpanReporter - Sending 1 spans to zipkin
  1. 查看Zipkin界面

访问Zipkin的界面(http://localhost:9411),可以看到链路追踪信息已经显示在界面上。

图片

总结

本文介绍了如何使用Spring Cloud Alibaba、Spring Cloud Sleuth和Zipkin来实现链路追踪。通过这种方式,中小企业可以快速定位服务问题,提高系统稳定性。