首先:装上 Zipkin 服务,收集调用链跟踪数据,体验时装在了本机docker上, 方便快捷
docker run -d -p : 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 研究的
这样就简单实现了,微服务的链路追踪