springCloud(F版)(5)——Sleuth服务链路追踪zipkin组件

版权声明:原创博文,转载请注明出处 https://blog.csdn.net/qq_15903671/article/details/82253015

SpringCloud提供了Sleuth框架用于服务追踪,集成了zipkin组件。zipkin-server有现成的jar包直接启动就好,当然你也可以自己创建一个丰富他的功能。客户端也及其简单,只要pom.xml引入依赖,配置文件指定zipkin-server的url就行了。

前面博文我们创建了一个springCloud系统的结构,从balance顶层负载均衡到zuul集群路由网关到service生产者服务集群的调用过程。实际测试时,我将来这些项目都作为zipkin的client指向zipkin-server。不过呢。。。发现以下问题。

1.zipken的client并不是每次接口调用都会跟zip-server交互,默认是10%,需要有大量调用集中发生才会在server端看到效果。

2.zipkin-server只是识别了服务集群间的调用,并不是追踪每一个接口调用时的实际ip、port、method

下面我们具体看一下如何使用zipkin实现服务追踪。主要包括:修改所有的程序使他们成为zipkin的client,下载并实际部署一个zipkin-server。

zipkin-server的可执行jar包百度网盘备份:链接:https://pan.baidu.com/s/1y5-kgZHoaiT8TUcoVjt1YA 密码:fxhd

整个测试工程百度网盘备份:链接:https://pan.baidu.com/s/1J2IX5cnfuu4cwuIcJGVdaA 密码:h0tn

一、修改原来的所有程序

以balance为例,其他的项目修改方式一模一样,首先在pom.xml中添加zipkin客户端依赖spring-cloud-starter-zipkin。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

懒的化加到父pom.xml里也行,但是一定记得重新打包所有的工程。

修改balance项目的application.properties配置文件,添加zipkin-server的url指定

spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1=1.0

第一行是配置zipkin-server的url,本地测试有效,分布式发布的化只能外置配置文件或者在写启动脚本的时候java -jar **.jar后面补充参数指令 --spring.zipkin.base-url=http://localhost:9411,localhost换成zipkin-server的固定ip。

第二行是配置zipkin-client发生接口调用的时候将百分中多少通知zipkin-server,范围是0.0-1.0,我配置成1.0表示百分之百通知,默认值是0.1表示百分之十的接口调用会通知zipkin-server。

二、zipkin-server下载运行

在我的百度网盘里把可执行jar包下载下来运行就可以,默认端口就是9411,自己可以通过 --server.port=1234去修改端口。

三、运行测试

先启动zipkin-server。然后编译运行刚刚改好的其他项目。反复调用接口之后浏览器打开:

http://localhost:9411 就可以看到服务追踪效果

调用越集中的线条越粗,我的系统是1:1的调用关系所以线条一样粗,我们可以调整spring.sleuth.sampler.probability参数的大小让client向zipkin-server通知的比例发生变化,可以模拟调用频率不同的接口依赖关系,图形界面的线条粗细会发生变化,点击application节点可以看到调用和被调用的频数清单。

猜你喜欢

转载自blog.csdn.net/qq_15903671/article/details/82253015