编程语言
Envoy 集成 Jaeger 实现分布式链路追踪
当将应用架构从单体系统迁移到微服务时,业务逻辑被拆分到不同服务中,导致微服务实际上是不同服务间的互相请求和调用。随着容器/虚拟化技术的发展,传统物理服务器被云服务器或虚拟资源取代,使得分布式环境中的运维和诊断变得复杂。主要的分布式追踪方向有 Logging、Metrics 和 Tracing,其中 Tracing 涉及 Envoy、Jaeger 和 .NET Core 的实现。分布式追踪系统基于 Dapper 论文,如 Zipkin、Jeager、Skywalking、LightStep 等系统,采用代码埋点、数据存储和查询展示三个步骤。OpenTracing 规范定义了 Trace 由多个 Span 组成,而每个 Span 包含多个 Tag。Envoy 通过 Zipkin 或 Jeager 支持外部追踪服务,实现分布式追踪。通过 Envoy 的 Gateway 模式实现请求追踪,结合 ASP.NETCore 和 Jeager 实现示例,展示服务调用链的追踪和分析。