在分布式系统中使用过滤器对请求进行链路追踪:Span ID和Trace ID的作用和处理流程
目录
- 场景
- 介绍
- 背景知识——Span ID 和 Trace ID
- 过滤器操作
RequestStatsFilter
ResponseStatsFilter
RequestTraceGatewayFilterFactory
- 过滤器执行顺序
- 处理流程
- 总结
1. 场景
假设我们在操作一个电商应用的订单过程中,订单的创建可能涉及"用户服务" ,“库存服务”,“订单服务"以及"支付服务"这四个服务。当用户发起一个创建订单的请求,请求首先到达"用户服务”,“用户服务"通过RequestStatsFilter
在请求头部添加Span ID和Trace ID,然后发送给下一个"库存服务”,如此下去,每个服务都会以此类推,直至请求结束。在订单创建请求的生命周期内,不同的服务都能通过Span ID和Trace ID来准确追踪请求的具体路径和状态。
2. 介绍
在微服务架构中,一个请求可能需要经过多个服务。为了更好地理解和跟踪一个请求在各个服务之间的运行情况,我们通常需要使用链路追踪。这篇博客将会解释如何利用过滤器来实现这一功能,重点关注Trace ID和Span ID的作用及其处理流程。
3. 背景知识——Span ID 和 Trace ID
在链路追踪中,有两个关键的概念:Span ID和Trace ID。