用于跟踪微服务调用。
spring boot 不再推荐用户定制Zipkin Server,这里没有使用@EnableZipkinServer注解来编写一个server的代码了。
可以下载一个编译好的jar,并运行服务
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar运行起来端口是9411
请参考: https://github.com/openzipkin/zipkin https://github.com/openzipkin/zipkin/tree/master/zipkin-server 配置参数可通过环境变量传递,例如把端口换成9991:
QUERY_PORT=9991 java -jar zipkin.jar默认zipkin server使用的是内存存储,重启后会丢失,也不适合生成环境。如果在生成环境中使用,建议换成elasticserver存储。
首先要安装elasticserver,ubuntu下安装可以使用apt
apt install elasticssearch安装好后,用下面的命令启动zipkin server(ES_HOSTS值替换成实际的elasticserver server url)。
STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 java -jar zipkin.jar客户端修改不需要修改java代码,也不会对UI等用户交互有直接影响。需要跟踪的客户端需要修改2点:
增加2个依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
</dependencies>增加一段:
spring:
sleuth: #日志收集客户端
web:
client:
enabled: true
sampler:
probability: 1.0 # 将采样比例设置为 1.0,也就是全部都需要。默认是 0.1
zipkin:
base-url: http://localhost:9411/ # 指定了 Zipkin 服务器的地址
span和trace是spring cloud sleuth中的两个术语。 一个trace是由1到多个span组成的树状结构。
每个请求对应一个trace,请求中对微服务的每次调用都会产生一个新的span。