Nob*_*ore 5 java rest spring web-services resttemplate
我们的 Spring 应用程序使用 RestTemplate 通过 Exchange() 方法向 Web 服务端点发送 HTTP 1.1 请求。99.8% 的情况下,这工作正常,但在 0.2% 的情况下,这会导致调用restTemplate.exchange() 和我们的负载均衡器记录 HTTP 请求(然后转发)之间的较长(10-180 秒)延迟到网络服务)。RestTemplate 是在没有指定备用 ClientHttpRequestFactory 的参数的情况下初始化的,所以我知道这段代码没有利用连接池,例如通过如下方式初始化它:
restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory())
Run Code Online (Sandbox Code Playgroud)
这是否能从逻辑上解释我所描述的症状,还是我应该继续调查?
这是代码片段,.exchange() 的最后一行在一小部分时间内会产生缓慢的性能。
private <T> ResponseEntity<T> request(String project,
String url,
HttpMethod method,
HttpEntity<String> request,
ClientHttpRequestInterceptor moduleInterceptor,
ParameterizedTypeReference<T> parameterizedTypeReference) {
log.info("request(): url - {}", url);
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
if (moduleInterceptor != null) {
interceptors.add(moduleInterceptor);
}
restTemplate.setInterceptors(interceptors);
try {
ResponseEntity<T> response = restTemplate.exchange(url, method, request, parameterizedTypeReference);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |