SpringCloud 实施传播
TraceContext.Extractor<C>由Propagation.Factory插件实现。在内部,此代码使用以下之一创建联合类型TraceContextOrSamplingFlags:* TraceContext(如果存在跟踪ID和跨度ID)。* TraceIdContext,如果存在跟踪ID但不存在跨度ID。* SamplingFlags,如果不存在标识符。
某些Propagation实现从提取(例如,读取传入的标头)到注入(例如,写入输出的标头)的角度携带额外的数据。例如,它可能带有请求ID。当实现中有额外数据时,它们将按以下方式处理:*如果提取了TraceContext,则将额外数据添加为TraceContext.extra()。*否则,将其添加为Tracer.nextSpan处理的TraceContextOrSamplingFlags.extra()。