博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud-sleuth-zipkin链路追踪
阅读量:4971 次
发布时间:2019-06-12

本文共 2190 字,大约阅读时间需要 7 分钟。

 

什么是Zipkin?

  它是一个分布式链路跟踪系统它可以帮助收集时间数据,每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求占总跟踪时间的百分比。

什么要使用它?

  随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构和容器技术的兴起,看似简单的一个应用,后台可能有几十个甚至几百个服务在支撑;一个前端的请求可能需要多次的服务调用最后才能完成;当请求变慢或者不可用时,我们无法得知是哪个后台服务引起的,这时就需要解决如何快速定位服务故障点,Zipkin分布式跟踪系统就能很好的解决这样的问题。

  简单的说zipkin就可以实现,那个服务有问题,服务于服务之间的依赖关系,运行时间等等

继续上篇说,附链接:https://www.cnblogs.com/zgwjava/p/10447542.html

 

创建zipkin模块

Gradle

compile 'io.zipkin.java:zipkin-server'    compile 'io.zipkin.java:zipkin-autoconfigure-ui'

yml

server:  port: 9999spring:  application:    name: zipkin-server

然后再看下启动类

package org.gw.zipkin.server;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import zipkin.server.EnableZipkinServer;/** * @DATA 2019-02-28 00:17 * @Author 张国伟  WeChat:17630376104 * @Description TODO */@EnableZipkinServer   #次注解为标注zipkin服务端@SpringBootApplicationpublic class ZipkinServerProvider {    public static void main(String[] args) {        SpringApplication.run(ZipkinServerProvider.class, args);    }}

我们运行项目 http://localhost:9999/zipkin/

可以看到zipkin服务端已经启动,在这上面可以查看服务间调用记录,要想实现链路追踪必须服务之间有依赖关系也就是调用关系,有RestTemplate在上一章我们已经说过服务间如何调用。

我们再来看下客户端如何配置

#eureka客户端server:  port: 10001spring:  application:    name: project-shopping-mall  thymeleaf:    prefix: classpath:/templates/    cache: false  zipkin:    base-url: http://localhost:9999/  sleuth:    sampler:      percentage: 1.0   #0.1-1.0链路跟踪的数据上传的概率,百分比eureka:  client:    service-url:      defaultZone: http://localhost:8888/eureka/  instance:    prefer-ip-address: truelogging:  path: /Users/mac/logs/shop  level:    org.gw.shopping.mai: info

我在controller这里加上了日志

我们看下控制台,为了测试我刷新了好几次,调用了好几次

可以看到有两个id,和一个true,true为是否想zikpin上传数据,接下来我们看下zipkin服务端

可以看到刚刚服务之间的调用信息,我们点击某一个

可以清晰的看到服务的信息,相应时间,当然也可以通过控制台的信息来查找服务调用信息,我们再来看下依赖

清晰的看到那个服务调用了那个服务。

  并发量大的时候普通的日志处理不了这么多信息,如何出异常了很难判断到底是那个服务,那一边出了问题,所以zipkin链路解决这个问题,任何问题清晰可见。

最后再看下服务客户端gradle添加的依赖,上面忘说了

compile 'org.springframework.cloud:spring-cloud-starter-sleuth'    compile 'org.springframework.cloud:spring-cloud-sleuth-zipkin'

客户端必须添加这两个依赖

下一章健康检查,感谢支持!!!

 

转载于:https://www.cnblogs.com/zgwjava/p/10451381.html

你可能感兴趣的文章
手机端web开发必备代码
查看>>
[SDOI2008]洞穴勘测
查看>>
NOI2014 购票
查看>>
Difference between Linearizability and Serializability
查看>>
电影《绿皮书》
查看>>
IDEA使用操作文档
查看>>
如何对网课、游戏直播等进行录屏
查看>>
UIView
查看>>
有关去掉谷歌及火狐浏览器文本框 数字类型 上下箭头的方法
查看>>
MySQL数据迁移到SQL Server
查看>>
复杂链表的复制(python)
查看>>
添加日期选择控件
查看>>
jquery.cookie.js操作cookie
查看>>
javascript遍历数组
查看>>
bzoj4765: 普通计算姬 (分块 && BIT)
查看>>
thinkphp5-----模板中函数的使用
查看>>
POJ-3211 Washing Clothes[01背包问题]
查看>>
[BZOJ4832][Lydsy1704月赛]抵制克苏恩
查看>>
数据库三范式
查看>>
看完漫画秒懂区块链
查看>>