分布式追踪:服务网格、跨度创建与性能考量
在分布式系统中,对应用进行有效监控和性能分析至关重要。本文将深入探讨服务网格、跨度创建以及性能考量等方面的内容,帮助你更好地理解和应用分布式追踪技术。
1. 集中请求组件与服务网格
在分布式系统中,存在集中请求的组件,例如直接调用多个服务的客户端,而非通过代理层。这时,可以将客户端作为集中点,并在此添加初始的检测。
当无法修改代码时,服务网格检测是一个有效的解决方案。服务网格是一个可配置的基础设施层,旨在支持服务间的进程间通信。通常,它通过边车代理实现这一功能,边车代理与每个服务实例并存,处理相关服务的所有进程间通信。除了服务通信,服务网格及其边车还可以处理监控、安全、服务发现、负载均衡、加密等功能。
服务网格检测的工作方式是,由于所有进程间通信都流经边车代理,因此可以在代理本身添加追踪。在许多现代服务网格项目(如 Istio)中,此功能开箱即用。对于传入请求,从头部提取跨度上下文,使用该上下文创建新的跨度,并添加描述操作的标签,在请求解决时完成跨度。
这种检测方式的最大优势是可以全面了解应用程序。通过在服务网格进行检测,所有由服务网格管理的服务都将成为跟踪的一部分,从而更深入地了解整个应用程序。此外,服务网格检测与每个服务的传输层无关,只要流量通过边车,就会被跟踪。
然而,服务网格检测也有其权衡和缺点。它是一种黑盒式的检测方式,无法了解代码内部的情况,也无法用现有数据之外的数据丰富跨度。此外,服务难以丰富来自服务网格的跨度,可能导致跟踪变得非常大,增加存储或处理成本。
2. 创建服务图
无论使用何种方法开始检测应用程序,都应考虑想要实现的第一个里
超级会员免费看
订阅专栏 解锁全文

912

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



