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就可以看到具体的链路追踪了!

 

 希望能帮助到你~

 

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...