当前位置:网站首页>Sleuth+Zipkin(可视化) 服务链路追踪
Sleuth+Zipkin(可视化) 服务链路追踪
2022-07-30 14:40:00 【努力学习,努力爱你!】
为什么用
微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。
链路追踪组件有 Google 的 Dapper,Twitter 的 Zipkin,以及阿里的 Eagleeye (鹰眼)等,它们都是非常优秀的链路追踪开源组件。
基本术语
- Span(跨度):基本工作单元,发送一个远程调度任务 就会产生一个 Span,Span 是一个 64 位 ID 唯一标识的,Trace 是用另一个 64 位 ID 唯一标识的,Span 还有其他数据信息,比如摘要、时间戳事件、Span 的 ID、以及进度 ID。
- Trace(跟踪):一系列 Span 组成的一个树状结构。请求一个微服务系统的 API 接口,这个 API 接口,需要调用多个微服务,调用每个微服务都会产生一个新的 Span,所有由这个请求产生的 Span 组成了这个 Trace。
- Annotation(标注):用来及时记录一个事件的,一些核心注解用来定义一个请求的开始和结束 。这些注解包括以下:
- cs - Client Sent -客户端发送一个请求,这个注解描述了这个 Span 的开始
- sr - Server Received -服务端获得请求并准备开始处理它,如果将其 sr 减去 cs 时间戳便可得到网络传输的时间。
- ss - Server Sent (服务端发送响应)–该注解表明请求处理的完成(当请求返回客户端),如果 ss 的时间戳减去 sr 时间戳,就可以得到服务器请求的时间。
- cr - Client Received (客户端接收响应)-此时 Span 的结束,如果 cr 的时间戳减去cs 时间戳便可以得到整个请求所消耗的时间。
整合Sleuth
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
日志等级
logging:
level:
org.springframework.cloud.openfeign: debug
org.springframework.cloud.sleuth: debug
docker 安装zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
整合zipkin
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
application.yml
spring:
zipkin:
#地址
base-url: http://127.0.0.1:9411/
#关闭服务注册
discovery-client-enabled: false
#发送模式
sender:
type: web
#采样数据
sleuth:
sampler:
probability: 1
zipkin 数据持久化
通过docker 方式
docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=192.168.56.10:9200 openzipkin/zipkin-dependencies
作者声明
如有问题,欢迎指正!
边栏推荐
- 面试何惧调优!腾讯技术官私藏的性能优化方案手册,原理实战齐全
- How to use Databricks for data analysis on TiDB Cloud | TiDB Cloud User Guide
- MySQL客户端工具的使用与MySQL SQL语句
- 三电系统集成技术杂谈
- Lock wait timeout exceeded solution
- EasyV数字孪生流域|宁波智慧水利整体智治综合应用
- DocuWare 文件管理与工作流程自动化案例研究——DocuWare 工作流程功能使在家工作的员工能够保持沟通和高效工作,支持混合环境
- 打破原则引入SQL,MongoDB到底想要干啥?
- BI-SQL丨WHILE
- ESP32 Repeated Reboot Issue Arduino Shield Power Outage Detector
猜你喜欢
随机推荐
关于String的一些思考
Machine learning difference in the competition and industry application
The use of ccs software (app software that makes money reliably)
【回归预测-CNN预测】基于卷积神经网络CNN实现数据回归预测附matlab代码
ESP32 Repeated Reboot Issue Arduino Shield Power Outage Detector
Allure Advanced - Dynamically Generate Report Content
Mac 中 MySQL 的安装与卸载
Desktop Software Development Framework Awards
【云原生 • DevOps】influxDB、cAdvisor、Grafana 工具使用详解
5G-based Warehousing Informatization Solution 2022
Chapter6 : Has Artificial Intelligence Impacted Drug Discovery?
ROS 导航
国内数字藏品的乱象与未来
Alluxio为Presto赋能跨云的自助服务能力
952. 按公因数计算最大组件大小 : 枚举质因数 + 并查集运用题
Why did I switch from developer to testing, 3 years software testing engineer, tell you the secret of this
BI-SQL丨WHILE
去腾讯面试,直接让人出门左拐 :幂等性都不知道!
Some thoughts on String
SQL 优化这么做就对了!







