Zipkin是一个致力于收集分布式服务的时间数据的分布式跟踪系统。其主要涉及以下四个组件:
collector: 数据采集;
storage: 数据存储;
search: 数据查询;
UI: 数据展示.
Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。接下来的测试为方便直接采用In-Memory方式进行存储,个人推荐Elasticsearch,特别是后续当我们需要整合ELK时。
构建zipkin项目
用的springboot2,所以构建zipkin没有找到适合的方法(@EnableZipkinServer....失效),所以直接在官网https://zipkin.io/下载了jar包运行:
打开http://localhost:9411
修改feign、service:
org.springframework.cloud
spring-cloud-starter-zipkin
properties配置:
spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.percentage=1.0 # 默认
我们在浏览器中访问几次服务http://localhost:8886/index,然后转到Zipkin服务器
该界面对本次请求进行了更详细的展现。同样我们还可以再点击,以查看更为详细的数据,可以看到如下界面
在Zipkin界面中我们还可以查看各服务之间的依赖关系
错误信息
Zipkin可以在跟踪记录中显示错误信息。当异常抛出并且没有捕获,Zipkin就会自动的换个颜色显示。在跟踪记录的清单中,当看到红色的记录时,就表示有异常抛出了。
关掉service-hello