同步休息模板
我們注入一個RestTemplate攔截器,確保所有跟蹤信息都傳遞給請求。每次呼叫都會創(chuàng)建一個新的Span。收到回應后關閉。為了阻止將spring.sleuth.web.client.enabled設置為false的同步RestTemplate功能。
重要你必須注冊RestTemplate作為一個bean,以便攔截器被注入。如果您使用new關鍵字創(chuàng)建RestTemplate實例,那么該工具將不工作。
異步休息模板
重要一個AsyncRestTemplatebean的跟蹤版本是為您開箱即用的。如果你有自己的bean,你必須用TraceAsyncRestTemplate表示來包裝它。最好的解決方案是只定制ClientHttpRequestFactory和/或AsyncClientHttpRequestFactory。如果您有自己的AsyncRestTemplate,并且您不要包裝您的電話將不會被追蹤。
定制儀器設置為在發(fā)送和接收請求時創(chuàng)建和關閉跨度。您可以通過注冊您的bean來自定義ClientHttpRequestFactory和AsyncClientHttpRequestFactory。記住使用跟蹤兼容的實現(xiàn)(例如,不要忘記在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創(chuàng)建為false。