什么是Sleuth
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,只需要在pom文件中引入相应的依赖即可。
为什么使用zipkin
在微服务架构中,大的系统会有上百个服务,而且其中服务之间调用关系复杂,在蜘蛛网似的微服务调用链路中寻找一条业务调用线极为复杂,zipkin就是应对这个问题
本文目录
1、构建 server-zipkin
2、构建注册中心
3、构建两个服务(模拟调用链)
4、最终调用验证
在spring Cloud为F版本的时候,已经不需要自己构建Zipkin Server了,只需要下载jar即可,可以使用我下面用到的版本
官方地址: https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
百度网盘链接:https://pan.baidu.com/s/1QoZQWftn3vpALcmRotpg1A
提取码:3972
下载完执行运行
默认端口 9411
访问
zipkin就绪后 地址 127.0.0.1:9411
注册中心就绪后 地址 127.0.0.1:8761
构建服务provide-server1 和 provide-server2
为了方便演示,我们这里使用rest方式进行服务调用
在idea中创建新的工程 工程名 例: provide-server1
在resources资源文件下创建 application.yml,并在该application.yml文件中加入如下配置
在启动类加入如下代码
创建web控制器
在idea中创建新的工程 工程名 例: provide-server2
依赖于 provide-server1 一致
目前为止捋一下服务和环境
eureka-server 127.0.0.1:8761
zipkin-server 127.0.0.1:9411
provide-server1 127.0.0.1:8011
provide-server2 127.0.0.1:8021
全部启动
调用下 provide-server1
provide-server1去调用了 provide-server2,所以返回的是 provide-server2接口的数据,到这里服务调用正常,那么我们再去zipkin看看有没有调用记录呢
查看zipkin调用记录 访问127.0.0.1:9411
如果没有记录的话点击 查找 按钮
点击这条记录
可以看到这次调用的详细信息
我们也可以通过结构图来查看更直观的调用链
可以看到在图中清晰的调用线路,以及请求的流向,真是功能强大,更多功能自己来尝试吧
最后说明一下,这个功能比较消耗性能,生产环境可以关闭,特别是配置 样本收集的比率为100%