一、RepeatContext
1、RepeatContext中包含了如下内容:
当前被回放记录的新traceId(新生成)
从数据库record中查询的recordModel数据(包含完整的流量回放需要的数据)
meta数据:本次回放是否需要mock,及mock策略 ,及其它数据
2、创建:流量录制回放时,在回放分发器中创建RepeatContext
3、RepeatContext的使用
RepeatContext的传递及获取,一种是通过方法调用传递RepeatContext,另外一种是通过:RepeatCache.putRepeatContext(context);
在事件监听器中,判断是否是回放流量,如果是回放流量,在进一步判断是否需要mock,进行后续mock流程的处理
二、TraceContext
TraceContext持有traceId ,并通过ThreadLocalttlContext =new TransmittableThreadLocal(); 存储在线程上下文中。实现一个方法的before \ return \throw 不同事件的串联
主要用在DefaultEventListener及其子类中,initContext(event);clearContext(event); ,两个方法中进行初始化和销毁
网友评论