问题描述
我们使用的是Spring Boot 2.3.3和spring-cloud-gcp-starter-trace 1.2.5.RELEASE,我们希望将跟踪信息发送到GCP中的Stackdriver,以用于自定义RestTemplate实例。
对于RestTemplate以外的其他组件,这似乎工作正常。我们可以从我们的rest控制器和消息总线集成等。我们没有在application.yaml
中进行任何特定的配置,这些配置应禁用RestTemplate中的跟踪拦截器。
自定义RestTemplate的定义如下:
@Bean(name = "customHttpClient")
public HttpClient customHttpClient() {
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
httpClientBuilder.setMaxConnPerRoute(20);
httpClientBuilder.setMaxConnTotal(40);
httpClientBuilder.evictExpiredConnections();
httpClientBuilder.evictIdleConnections(5L,TimeUnit.SECONDS);
httpClientBuilder.setConnectionTimetoLive(20L,TimeUnit.SECONDS);
return httpClientBuilder.build();
}
@Bean(name = "customrestTemplate")
RestTemplate customrestTemplate() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setHttpClient(customHttpClient());
return new RestTemplate(factory);
}
我们还尝试了将RestTemplateCustomizer
注入到customrestTemplate
bean中,但这似乎没有任何区别:
@Bean(name = "customrestTemplate")
RestTemplate customrestTemplate(ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers) {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setHttpClient(customHttpClient());
restTemplateCustomizers.orderedStream().forEach(customizer -> customizer.customize(restTemplate));
return restTemplate;
}
如何为“ customrestTemplate” bean启用跟踪?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)