开源仪器化:接口、库和框架
1. 传统追踪方案的局限性
在软件开发领域,追踪技术,包括分布式追踪,并非全新概念。几十年来,开发者们一直在构建各种形式的分布式系统,并借助追踪解决方案来理解这些系统。然而,许多传统追踪解决方案存在一些共性问题,它们往往具有很强的针对性:
- 特定技术栈或语言 :某些解决方案仅适用于特定的技术栈或编程语言。
- 特定中间件提供商 :依赖特定中间件提供商的使用。
- 自研方案 :由已离职的工程师维护多年的自研解决方案。
近年来,在云服务提供商和其他平台提供商的推动下,这种情况愈发普遍。虽然这些专有或封闭的解决方案对很多人来说效果不错,能为用户提供一定价值,但实际上它们比表面看起来更脆弱。使用专有仪器化方案的主要问题在于,当需要为新语言、新方法或因规模扩大和业务需求带来的挑战调整软件时,往往受制于解决方案的开发者。
2. 抽象仪器化的重要性
2.1 传统追踪方法的不足
传统追踪信息通常可在一些“合理”的位置获取,如服务边界或通过负载均衡器、Web 代理等入口层。像亚马逊弹性负载均衡器(ELB)的 X-Amzn-TraceID 或微软 IIS 的追踪头,能提供单个请求在服务中流转的详细视图。但这些传统追踪方法在以下几个关键方面存在不足:
- 可移植性差 :以 IIS 请求追踪为例,使用该功能需以 IIS 作为 Web 服务器或代理,这意味着软件需运行在 Windows Server 上。如今 Windows Server
超级会员免费看
订阅专栏 解锁全文
13万+

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



