参考资料:
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服务原理与实战》
《B站 尚硅谷 SpringCloud 框架开发教程 周阳》
Zipkin 允许开发人员以图形方式查看事务占用的时间量,并分解在调用中涉及的每个微服务所用的时间。在微服务架构中,Zipkin 是识别性能问题的宝贵工具;

Trace Id 唯一标识,Span 标识发起的请求信息,各 Span 通过 Parent id 关联起来;

Spring Cloud 从 F 版起不需要自己构建 Zipkin Server 了,只需调用 jar 包即可;
java -jar zipkin-server-2.12.9-exec.jar;
也可以使用 Docker 部署省去下载的麻烦;
docker run -d -p 9411:9411 openzipkin/zipkin;虽然 Spring Cloud 从 F 版起不需要自己构建 Zipkin Server,但这里还是提供手动构建的方法;
<!-- 用于创建 Zipkin 服务器所需的核心类 --><dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId></dependency><!-- 用于运行 Zipkin 服务器的 UI 部分所需的核心类 --><dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-autoconfigure-ui</artifactId></dependency>需要给 Zuul 网关服务、消费者服务、提供者服务等所有服务添加依赖;
<!-- 包含在服务中启用 sleuth 的基本库 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId></dependency><!-- 【可选】当开发人员需要以编程方式与 sleuth 交互时添加 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-core</artifactId></dependency><!-- 与 Zipkin 集成 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin</artifactId></dependency>在每个想与 Zipkin 进行通信的服务的 application.yml 配置文件中进行修改;
spring: zipkin: baseUrl: http://localhost:9411 #Zipkin 服务器的地址 sleuth: sampler: percentage: 1 #设置跟踪级别,也即定义每个服务应该向 Zipkin 写入数据的频率,默认 10%spring.sleuth.sampler.percentage = 0 表示不发送任何事物数据;spring.sleuth.sampler.percentage = 1 属性也可用下面的代码替代。表示为所有服务发送跟踪信息;@Beanpublic Sampler defaultSampler() { return new AlwaysSampler();}





