实现HttpRequestInterceptor接口并重写process方法
如果调用线程中含有traceId,则需要将获取到的traceId通过request中的header向下透传下去
-
为HttpClient添加拦截器
-
通过addInterceptorFirst方法为HttpClient添加拦截器
OKHttp:
-
实现OKHttp拦截器
-
实现Interceptor拦截器,重写interceptor方法,实现逻辑和HttpClient差不多,如果能够获取到当前线程的traceId则向下透传
- 为OkHttp添加拦截器
调用addNetworkInterceptor方法添加拦截器
RestTemplate:
- 实现RestTemplate拦截器
实现ClientHttpRequestInterceptor接口,并重写intercept方法,其余逻辑都是一样的不重复说明
-
为RestTemplate添加拦截器
-
调用setInterceptors方法添加拦截器
第三方服务拦截器:
HTTP调用第三方服务接口全流程traceId需要第三方服务配合,第三方服务需要添加拦截器拿到request header中的traceId并添加到MDC中
Original: https://www.cnblogs.com/fnlingnzb-learner/p/16458445.html
Author: Boblim
Title: SpringBoot+MDC实现全链路调用日志跟踪
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541019/
转载文章受原作者版权保护。转载请注明原作者出处!