Spring Cloud 微服务(八):链路追踪

时间:2022-07-22
本文章向大家介绍Spring Cloud 微服务(八):链路追踪,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文简单介绍如何在项目中集成链路追踪。

集成 日志收集集成 之后,再做链路追踪就比较简单。

1. 部署 Zipkin 服务

在项目中,添加 peacetrue-microservice-zipkin 模块,安装启动 Zipkin 服务:

$ cd peacetrue-microservice-zipkin
$ curl -sSL https://zipkin.io/quickstart.sh | bash -s
$ java -jar zipkin.jar

因为 zipkin.jar 比较大,没有放在项目中,使用时需要通过以上命令下载。

官网推荐方式是通过 jar 运行,不要内嵌到本地项目运行。不能享受 Spring 统一配置很遗憾。

打开 Zipkin 首页 http://localhost:9411 ,界面如下:

Figure 1. zipkin首页

2. 项目改造

只需要添加 org.springframework.cloud:spring-cloud-starter-zipkin 依赖。

3. 测试效果

访问外部客户端 GET /message 接口后,整个调用过程如下:

Figure 2. 测试效果

涉及到 3 个服务,4 次调用,总耗时约 668 毫秒。

4. 使用 Elasticsearch 存储数据

Zipkin 默认使用内存存储,不适合生产环境使用,改为 Elasticsearch。在 日志收集集成 中,已经安装好了 Elasticsearch,这里直接使用。

首先,指定使用 elasticsearch 存储:

$ STORAGE_TYPE=elasticsearch java -jar zipkin.jar

然后,配置 Elasticsearch 的相关参数 [1]:

#指定 Elasticsearch 的地址、用户名和密码
$ STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 ES_USERNAME=peacetrue ES_PASSWORD=password java -jar zipkin.jar

命令行指定参数太辛苦,怀念 Spring 的 YML 配置。


1. 详细参数看这里 https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage