y109.第六章 微服务、服务网格及Envoy实战 -- 可观测应用之分布式跟踪(二十)

13.9.1 Envoy Sidecar如何在代理请求的过程中处理跟踪

  • 用户在请求中注入跟踪相关的请求ID, Envoy Sidecar接入后发送至本地服务(local service),如右图中的App

    • Envoy需要把TraceID发给本地服务
    • 还可能会附加其它标头
      在这里插入图片描述
      首先客户端用户再请求中要注入与跟踪相关的请求ID,我们需要在客户端生成请求ID,上图中客户端生成X-B3-Traceid,使用的是B3的traceid格式,这时候envoy就需要把traceid发送给本地服务,App是我们被代理的,envoy是sidecar,前端不管它是什么组件,有可能是front envoy或者其它客户端,它生成了一个请求ID并发给envoy,envoy就需要把这个请求ID传送给其反向代理的本地的App,对于App本身而言它可能还会通过X-Forwarded-For来记录下来究竟前端是谁代理而来,envoy can add headers可以加一些其它的首部,包括X-Forwarded-For,还有X-Forwarded-Client-Cert等等。
  • 本地服务有可能额外需要调用外部的其它服务,其请求通常由Envoy Sidecar上的Egress Listener代理

    • 每个请求都需要其ID,为了保持跟踪,需要复制接收到的TraceID,并附加在请求中,以完成传播

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/125362461