15、jvm-sandbox-repeater 回放时区分录制及
2023-02-07 本文已影响0人
许你一枝花
补充第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的流程
