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

希望能帮助到你~

Springboot+Dubbo使用Zipkin进行接口调用链路追踪的更多相关文章

  1. DUBBO监控,设置接口调用数据的上报周期

    目录 DUBBO监控,设置接口调用数据的上报周期 dubbo已有的监控方案 针对已有方案的改进 DUBBO监控,设置接口调用数据的上报周期 dubbo是目前比较好用的,用来实现soa架构的一个工具,d ...

  2. 利用SpringBoot+Logback手写一个简单的链路追踪

    目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简 ...

  3. net core 微服务框架 Viper 调用链路追踪

    1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...

  4. SpringBoot 动态代理实现三方接口调用

    目录 一.定义注解 二.建立动态代理类 三.注入spring容器 四.编写拦截器 五.创建客户端调用类 六.main方法测试 七.启动项目 在某些业务场景中,我们只需要业务代码中定义相应的接口或者相应 ...

  5. SpringBoot之RESTFul风格的接口调用(jQuery-Ajax)

    一.Get $.ajax({ type: "get", url: "url地址", async: true, dataType:"json" ...

  6. springboot rabbitmq消息同步用作接口调用

    1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  7. dubbo traceId透传实现日志链路追踪(基于Filter和RpcContext实现)

    一.要解决什么问题: 使用elk的过程中发现如下问题: 1.无法准确定位一个请求经过了哪些服务 2.多个请求线程的日志交替打印,不利于查看按时间顺序查看一个请求的日志. 二.期望效果 能够查看一个请求 ...

  8. 「Java分享客栈」随时用随时翻:微服务链路追踪之zipkin搭建

    前言 微服务治理方案中,链路追踪是必修课,SpringCloud的组件其实使用很简单,生产环境中真正令人头疼的往往是软件维护,接口在微服务间的调用究竟哪个环节出现了问题,哪个环节耗时较长,这都是项目上 ...

  9. spring cloud 系列第7篇 —— sleuth+zipkin 服务链路追踪 (F版本)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.简介 在微服务架构中,几乎每一个前端的请求都会经过多个服务单元协调来提 ...

随机推荐

  1. 小Z的袜子(hose) &&作业 (莫队)

    莫队:一种非常优雅的暴力,时间复杂度一般情况下是n*根号n,还是很优秀的. 今天水了三道莫队题,对普通莫队有了些了解 1.莫队l和r为指针,维护当前区间的某些信息,一般可以是当前区间不同权值的个数,( ...

  2. 解析 Nebula Graph 子图设计及实践

    本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow 看大厂图数据库技术实践. 前言 在先前的 Query Engine 源码解析中,我们介绍了 2.0 ...

  3. js笔记15

    DOM2动态创建节点 1.生成节点的方法 document.createElement("div") 2.插入节点的方法 父元素.appendChild(新节点) 在父节点的子节点 ...

  4. 《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)

    1.简介 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本.前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容, ...

  5. Netty 框架学习 —— 添加 WebSocket 支持

    WebSocket 简介 WebSocket 协议是完全重新设计的协议,旨在为 Web 上的双向数据传输问题提供一个切实可行的解决方案,使得客户端和服务器之间可以在任意时刻传输消息 Netty 对于 ...

  6. python之set集合,基础篇

    集合:set 特点:1>.无序 ,因为集合是无序的,所以不可用下标值查询,也不可切片2>.去重 ,一个集合内不能有两个相同的元素3>.可添加,可删除,不可修改等等4>.集合内的 ...

  7. 『心善渊』Selenium3.0基础 — 21、Selenium实现绕过验证码进行登陆

    目录 1.验证码问题 2.处理验证码的方法 3.Selenium绕过验证码登陆的实现 4.总结 5.补充练习 1.验证码问题 对于Web应用来说,大部分的系统在用户登录时,都要求用户输入验证码.验证码 ...

  8. java中使用for循环删除List集合的陷阱

    一直以为是数据库的数据取错了,导致后面for循环出错.慢慢调试之后,发现这原来是一个坑.回到正题 (错误示范:使用for循环删除list集合) for(int i=0;i<list.size() ...

  9. mac sudo: /etc/sudoers is world writable

    今天误操作修改了/etc/sudoers的权限,将它的权限改成了777,结果就导致执行所有sudo的命令都报错. sudo: /etc/sudoers is world writable sudo: ...

  10. 职场人都该了解<荷花定律>

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 荷花定律 ,听起来很新奇的一个 ...