RestTemplate.exchange长时间延迟

时间:2018-04-04 18:33:15

标签: java spring rest web-services resttemplate

我们的Spring应用程序使用RestTemplate通过exchange()方法将HTTP 1.1请求发送到Web服务端点。 99.8%的时间工作正常,但在0.2%的情况下,这会导致调用restTemplate.exchange()和我们的负载均衡器记录HTTP请求(然后转发)之间的延迟(10-180秒)到网络服务)。在没有指定备用ClientHttpRequestFactory的参数的情况下初始化restTemplate,所以我知道这段代码没有利用连接池,例如通过初始化它如下:

restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory())

这是否在逻辑上解释了我所描述的症状,还是应该继续调查?

这是代码片段,.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);

0 个答案:

没有答案
相关问题