HTTP客户端集成

同步休息模板

我们注入一个RestTemplate拦截器,确保所有跟踪信息都传递给请求。每次呼叫都会创建一个新的Span。收到回应后关闭。为了阻止将spring.sleuth.web.client.enabled设置为false的同步RestTemplate功能。

重要你必须注册RestTemplate作为一个bean,以便拦截器被注入。如果您使用new关键字创建RestTemplate实例,那么该工具将不工作。

异步休息模板

重要一个AsyncRestTemplatebean的跟踪版本是为您开箱即用的。如果你有自己的bean,你必须用TraceAsyncRestTemplate表示来包装它。最好的解决方案是只定制ClientHttpRequestFactory和/或AsyncClientHttpRequestFactory。如果您有自己的AsyncRestTemplate,并且您不要包装您的电话将不会被追踪

定制仪器设置为在发送和接收请求时创建和关闭跨度。您可以通过注册您的bean来自定义ClientHttpRequestFactory和AsyncClientHttpRequestFactory。记住使用跟踪兼容的实现(例如,不要忘记在TraceAsyncListenableTaskExecutor中包装ThreadPoolTaskScheduler)。自定义请求工厂示例:

@EnableAutoConfiguration

@Configuration

public static class TestConfiguration {

@Bean

ClientHttpRequestFactory mySyncClientFactory() {

return new MySyncClientHttpRequestFactory();

}

@Bean

AsyncClientHttpRequestFactory myAsyncClientFactory() {

return new MyAsyncClientHttpRequestFactory();

}

}

将AsyncRestTemplate功能集spring.sleuth.web.async.client.enabled阻止为false。禁用TraceAsyncClientHttpRequestFactoryWrapper设置spring.sleuth.web.async.client.factory.enabled设置为false。如果您不想将所有spring.sleuth.web.async.client.template.enabledfalse的AsyncRestClient创建为false。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容