"); //-->
在分布式系统中,由于服务间的调用关系复杂,需要实现分布式链路追踪来跟踪请求在各个服务中的调用路径和时间消耗。这对问题排查和性能监控都很重要。
常用的分布式链路追踪实现有基于日志的和基于分布式追踪系统的两种方式:
基于日志的实现方式是在每个服务中记录自己的请求id和上下文信息,并在日志中打印出来。这样可以通过聚合各个服务的日志来还原整个请求链路。
基于分布式追踪系统的实现方式是:
使用开源Tracing系统,比如Zipkin。每个服务都需要集成Tracing客户端库。
客户端在发起请求时,生成一个唯/一的TraceId并传递给下游服务。
每个服务接收到请求都需要记录Span数据,包括操作名、时间戳等。
所有Span数据通过消息队列发送给Tracing系统。
Tracing系统将收集的Span通过时间排序后重构成一条链路。
这里继续扩展分布式链路追踪的几点内容:
1.数据收集方式除了日志和Tracing系统外,还可以采用专用Agent向中心服务器报告追踪数据。
2.链路数据展示可以通过可视化追踪系统实现,支持过滤、聚合查询等功能寻找性能瓶颈。
3.链路数据可以进一步用于异常监控,比如追踪错误请求的整个调用链路排查问题。
4.链路数据也可以用于应用性能监控(APM),追踪每个服务的响应时间分布找出慢服务。
5.分布式追踪需要考虑大量分布式调用产生的高并发压力,选择性能优异的追踪系统实现。
6.链路数据可以通过机器学习算法进行分析,自动学习出正常调用模式,找出异常调用路径。
7.链路ID的传播需要考虑多种语言和协议的兼容,保证ID的上下文传递。
8.链路数据的存储和查询也是一个重要问题,需要考虑大规模分布式追踪数据的处理能力。
9.链路采样是一种常用优化手段,只对部分请求进行详细追踪,降低系统压力。
以上内容给出了分布式链路追踪在数据收集、展示、应用等方面的一些进一步思路,对系统设计和优化很有帮助。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
RTI公司和Ansys合作推动关键任务分布式系统设计、仿真和部署创新
分布式整流桥测试系统的设计与实现
关于一段文章的翻译-与分布式虚拟仪器有关的
分布式脉冲监测系统
2016-2017年中国光伏回顾与展望
分布式供电电源系统的原理框电路图
基于分布式组件的监测网络系统的设计与实现
基于CAN-bus的电梯教学模型
适合VR10和更高版本的可扩展分布式转换器结构
基于DSP和CAN总线的分布式多电机控制系统的设计与应用电路图
同步关键的分布式系统时,新型Σ-ΔADC架构可避免中断的数据流
基于CAN总线的分布式铝电解控制系统
分布式阀控密封铅酸蔷电池的充电系统结构图
[转帖]寻迹小车中分布式控制系统的设计
基于uClinux的实时网络监控服务器开发与应用
基于LPC 控制器的风光互补分布式发电系统的设计电路图
2017-2018年中国光伏市场回顾与展望
基于GPS技术实现分布式数据同步采集系统
实现云存储的必要条件
IDC Innovator:中国分布式关系型数据库报告正式发布
分布式多DSP系统的CPCI总线接口设计和驱动开发
黑魔书第一章
寻迹小车中分布式控制系统的设计
基于μC/OSⅡ的分布式应急电源控制系统设计
DOIT“白皮书”:分布式存储渐成主流 曙光单存储项目规模超100PB