分布式链路追踪认识及选型
微服务化后所出现的一些矛盾/冲突点
背景: 级联故障和雪崩 的 P0 级别事件后,你小手一摊便葛优躺了。开始进行自我复盘,想起这次排查经历,由于现在什么基础设施都还没有,因此在接收到客户反馈后,你是通过错误日志进行问题检查的。
Google Dapper 论文所介绍的 Dapper. 源于 Google 为了解决可能由不同团队,不同语言,不同模块,部署在不同服务器,不同数据中心的所带来的软件复杂性(很难去分析,无法做定位),构建了一个的分布式跟踪系统. 自此就开启了业界在分布式链路的启发/启蒙之路,很多现在出名的分布式链路追踪系统都是基于 Google Dapper 论文发展而来,基本原理和架构都大同小异。
选型, 有哪些
- Twitter:Zipkin。
- Uber:Jaeger。
- Elastic Stack:Elastic APM。
- Apache:SkyWalking(国内开源爱好者吴晟开源)。
- Naver:Pinpoint(韩国公司开发)。
- 阿里:鹰眼。
- 大众点评:Cat。
- 京东:Hydra。
问题: 他们之间都是基于 Google Dapper 演进出来的,那本质上到底有什么区别,怎么延伸出这么多的新产品?
链路跟踪系统的功能
- 故障快速定位
- 各个调用环节的性能分析
- 数据分析等
- 生成服务调用拓扑图