【发布时间】:2018-07-29 09:23:11
【问题描述】:
我有一个基于 Spring Boot 的应用程序并使用 RestTemplate 发送 HTTP 请求。应用程序向其发送请求的一些端点响应非常慢,但有些应该快速响应。当使用 RestTemplate 的服务被大约 20 个线程并行使用时,RestTemplate 碰巧挂起并等待某些东西(一些对快速端点的请求的执行速度比它们应该执行的慢得多)。
当我切换到 Jersey HTTP 客户端时,问题就消失了,所以它一定是 RestTemplate 本身的问题。
我用RestTemplateBuilder创建bean:
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}
并使用exchange方法发送请求:
ResponseEntity<Void> result = restTemplate.exchange(url, HttpMethod.POST, request, Void.class);
有谁知道为什么 RestTemplate 会有这样的行为?
【问题讨论】:
-
也许我误解了你的问题,但这可能会有所帮助:stackoverflow.com/questions/21145558/…
-
您可以尝试使用 AsyncRestTemplate 就地 RestTemplate 进行并发请求。
标签: java spring rest resttemplate