- 负载均衡:譬如 nginx,初始化 traceId 放入header
- zuul和gateway判断是否有,没有就放一个
- web request:通过 fliter 获取 header的traceId,无则初始化 traceId
- rpc 调用:通过扩展机制传递 traceId,无则初始化 traceId
- 定时任务 @Schedule:通过 注解切面@TraceId, 初始化 traceId
- 消息消费:通过消息传递协议添加traceID,无则使用注解切面@TraceId初始化 traceId
- 线程池或者异步:封装runnable和callable初始化传递traceId或者封装线程池初始化传递traceId
zuul和gateway判断是否有
微服务
入口:
aop 判断请求header内是否有,没有就添加,并在mdc上添加
多线程自己添加
mq判断是否有,没有添加
定时任务
出口:
fegin添加header
mq添加traceId