首先:装上 Zipkin 服务,收集调用链跟踪数据,体验时装在了本机docker上, 方便快捷
docker run -d -p 9411:9411 openzipkin/zipkin
安装后访问地址也是 9411端口(客户端未上报数据时 Service Name 里面只有 all 一个选项),如下
一、所有的服务(包括 gateway,Eureka server 除外)安装 数据上报组件(pom添加依赖)
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
只需要一个依赖,因为它做了一个简单封装了另外两个依赖
二、所有的服务(包括 gateway,Eureka server 除外)添加下面简单配置:
spring: application: name: tx-java-server zipkin: base-url: http://localhost:9411/ sleuth: sampler: probability: 1
我这里通过网关分别访问了 http://127.0.0.1:8201/java/ (Java语言的服务) 和 http://127.0.0.1:8201/php/ (非JVM语言的服务,通过Sidecar代理,Sidecar也装了Zipkin依赖配置)两个网址,链路耗时数据分别为如下
通过 Sidecar 服务上安装的 Sleuth 和 Zipkin 上报的数据,看不见具体的服务名及每个阶段的详细信息 // TODO 研究的
这样就简单实现了,微服务的链路追踪