Springboot+Dubbo使用Zipkin进行接口调用链路追踪
Zipkin介绍:
Zipkin是一个分布式链路跟踪系统,可以采集时序数据来协助定位延迟等相关问题。数据可以存储在cassandra,MySQL,ES,mem中。分布式链路跟踪是个老话题,国内也有类似的框架,比如阿里的skywalking。 zipkin目前和SpringCloud生态结合紧密,有相关的支持。
zipkinServer下载链接:
链接:https://pan.baidu.com/s/1tbydFqM_WaMH7qe1Ktvw5Q
提取码:8o7n
下载之后,使用java -jar zipkin-server-2.12.9-exec.jar 命令启动了,启动完后后浏览器访问 http://localhost:9411 就可以了。
项目使用了Spingboot + Dubbo的框架结构,在集群部署时发现C端请求接口响应缓慢!于是引入了Zipkin来追踪一下服务接口的调用耗时
配置如下:
1、pom添加Zipkin所需依赖:
<!--zikpin--> <dependency> <groupId>io.zipkin.brave</groupId> <artifactId>brave-instrumentation-dubbo-rpc</artifactId> <version>5.4.1</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.0.0.RELEASE</version> </dependency>
2、为spring加入zipkin配置:
spring: ... 省略其他配置 ... zipkin: enabled: true base-url: http://localhost:9411 messageTimeout: 5 sender: #向http发送trace信息 type: web sleuth: sampler: percentage: 1
3、为dubbo服务提供者和消费者注入 tracing 过滤器:
dubbo:
... 省略部分配置 ...
consumer:
timeout: 15000
check: false
retries: 0
filter: 'tracing'
provider:
retries: 0
filter: 'tracing'
4、声明指定tracing过滤器使用类
①、在项目resources目录下新建目录 META-INFO.dubbo
②、在上面目录里面创建名为 org.apache.dubbo.rpc.Filter 的文本文件
③、在上面文本文件里面下入以下配置
tracing=brave.dubbo.rpc.TracingFilter
完成之后,访问Zipkin就可以看到具体的链路追踪了!
希望能帮助到你~