整合Zipkin实践

首先,需要在每个微服务模块的 pom.xml 文件中添加 Zipkin 依赖。依次打开 newbee-mall-cloud-user-webnewbee-mall-cloud-recommend-webnewbee-mall-cloud-order-webnewbee-mall-cloud-shop-cart-webnewbee-mall-cloud-goods-web 5 个微服务实例工程中的 pom.xml 文件,在 dependencies 标签下引入 Zipkin 的依赖文件,新增代码如下:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

其次,在微服务实例中配置 Zipkin 的通信地址及采样率。依次打开 newbee-mall-cloud-user-webnewbee-mall-cloud-recommend-webnewbee-mall-cloud-order-webnewbee-mall-cloud-shop-cart-webnewbee-mall-cloud-goods-web 5个微服务实例工程中的 application.properties 配置文件,分别新增如下配置项:

# Sleuth 采样率,取值范围为[0.1, 1.0],值越大,收集信息越及时,但对性能影响越大
spring.sleuth.sampler.probability=1.0
# 每秒数据采集量,最多 n 条/秒 Trace
spring.sleuth.sampler.rate=500

spring.zipkin.base-url=http://localhost:9411

最后,依次启动 5 个微服务实例,并打开浏览器访问一些接口。在这里,笔者通过各微服务的 Swagger UI 页面进行测试,访问了几个网址。之后进入 ZipkinUI 页面,单击 “RUN QUERY” 按钮,便会出现调用的链路信息,如图 12-1 所示。

image 2025 04 28 15 19 43 537
Figure 1. 图12-1 Zipkin 页面中显示的链路信息截图

可以看到请求信息出现在 Zipkin 页面中,包括微服务名称、请求方法、请求时间等基本信息。如果想看更详细的信息,可以单击旁边的 “SHOW” 按钮。

比如,首页接口调用链路详情页面,如图 12-2 所示。

image 2025 04 28 15 20 13 710
Figure 2. 图12-2 首页接口调用链路详情页面

添加商品至购物车接口调用链路详情页面,如图 12-3 所示。

image 2025 04 28 15 20 41 967
Figure 3. 图12-3 添加商品至购物车接口调用链路详情页面

本章主要讲解在微服务架构项目中整合 SeluthZipkin 的相关编码过程,对实战部分的讲解做补充和优化。编码改造比较简单,只是有些小细节要注意一下,毕竟在实战项目里整合与写一个小案例整合有一些差别。虽然简单,但是笔者整理完成后,可以让读者学习起来更顺畅、更简单。希望读者能够根据笔者提供的开发步骤顺利地完成本章的项目改造。