补充第14章:
1、回放分发时,新生成了一个traceId :TraceGenerator.generate() ,并将之放入之上下文中:RepeatCache.putRepeatContext(context);
2、AbstractRepeater.repeat()方法中的Tracer.start(context.getTraceId());,
从上一步中的RepeatContext中取出traceId,并将此traceId 放入至当前线程的上下文ThreadLocalttlContext中
ThreadLocalttlContext =new TransmittableThreadLocal();
3、回放时对是否回放流量的判断:RepeatCache.isRepeatFlow(Tracer.getTraceId())
Tracer.getTraceId():从当前线程的上下文中取出 traceId ,及上面步骤中的:ThreadLocalttlContext
RepeatCache中也保存有回放流量分发时缓存的traceId:
如果这两个一致,则认为是回放流量,进入是否mock的流程
网友评论