1,为什么要使用分布式链路追踪工具
随着分布式系统和微服务架构的出现,且伴随着用户量的增加,项目的体量变得十分庞大,一次用户请求会经过多个系统,不同服务之间调用关系十分复杂,一旦一个系统出现错误都可能会影响整个请求的处理结果。而因为项目十分庞大,调用链路十分复杂,无法快速定位失败的位置和原因。
除此之外,复杂的分布式系统也面临如下问题:
- 性能分析:一个服务依赖很多,被依赖的服务也依赖其他服务。如果某个接口耗时突然变长,那未必是直接调用的下游服务慢了,也可能是下游的下游慢了造成的,如何快速定位耗时变长的根本原因
- 链路梳理:需求迭代很快,系统之间调用关系变化频繁,靠人工难以梳理系统链路拓扑图【系统之间的调用关系】
为了解决这些问题。Google推出了分布式链路跟踪系统Dapper,之后各个互联网公司都参照Dapper的思想推出了自己的分布式链路跟踪系统,而这些系统就是分布式系统下的APM系统
2,什么是APM系统
APM【application performance management】即应用性能管理系统,是对企业系统即时监控以实现对应程序性能管理和故障管理的系统化解决方案。应用性能管理,主要指对企业的关键业务应用进行检测,优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本
APM系统是可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位问题和解决问题
3,什么是OpenTracing
分布式链路跟踪最先由Goole在Dappper论文中提出,而Open Tracing通过提供平台无关,厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。
4,分布式链路追踪工具的主要工具对比
- zipkin:Twitter公司开源的一个分布式追踪工具,被Spring Cloud Sleuth集成,使用广泛而稳定。
- Sky walking:中国人吴晟【华为】开源的一款分布式追踪,分析,告警的工具,现在是Apache旗下的开源项目。
- cat:大众点评开源的一款分布式链路追踪工具。
| 工具 | 实现方式 | 接入方式 | 数据收集 | UI | 数据存储方案 |
|---|---|---|---|---|---|
| zipkin | 拦截请求 | sleuth,引入依赖和配置 | 链路,耗时 | 一般 | 内存,mysql,es,Cassandra |
| Sky walking | Java探针,字节码增强 | Javaagent | 链路,耗时,cpu,mem,JVM | 丰富 | es,mysql,h2,TiDB |

本文介绍了分布式系统中使用链路追踪工具的重要性,如Dapper和APM系统,特别是OpenTracing的平台无关特性。重点对比了Zipkin、Skywalking和Cat等主流工具的优缺点,以及Skywalking的可观测分析平台和模块化架构。
最低0.47元/天 解锁文章
1245

被折叠的 条评论
为什么被折叠?



