当我使用OAuth2RestTemplate而不是RestTemplate时,Sleuth TraceId不传播

时间:2019-11-28 12:06:52

标签: spring-boot microservices spring-cloud-sleuth

我们在微服务中添加了分布式跟踪。当我们将RestTemplateTraceID用在Spring头文件中时,我们使用SpanId时效果很好。

但是当我们开始使用OAuth2RestTemplate时,它就停止工作了。在进行调查时,我发现对于OAuth2RestTemplate,默认情况下spring不会在标头中添加TraceIDSpanId

我发现有人建议添加一些无效的拦截器:此代码段。

    // 
    *
    @Bean public UserInfoRestTemplateCustomizer userInfoRestTemplateCustomizer() {
        return oAuth2RestTemplate - > {
            List <
            ClientHttpRequestInterceptor >
            interceptors = new ArrayList < > (
                oAuth2RestTemplate.getInterceptors());
            interceptors.add(tracingClientHttpRequestInterceptor);
            oAuth2RestTemplate.setInterceptors(interceptors);
        };
    }

请注意,我们使用的是Spring侦探版本“ 2.0.1.RELEASE”。

我们代码中的代码片段:

    @Autowired @Qualifier("customAuth2RestTemplate") OAuth2RestTemplate oAuth2RestTemplate; public void invokeCustomService(String resourceUrl, HttpEntity httpEntity) {
        retryTemplate.execute(arg0 - > {
            oAuth2RestTemplate.exchange(resourceUrl, getCustomHttpMethod(),
                httpEntity, getcustomClass());
            return null;
        });
    }

0 个答案:

没有答案
相关问题