我拥有少量微服务的Spring Boot基础架构。他们彼此之间的交流很好。其中一个微服务有一些第三方调用,它们通过http调用了一些第三方服务。 我定义了自己的RestTemplate,并在init()方法中设置了connectTimeout和readTimeout。 从堆栈跟踪中,我看到使用了我的其余模板。
@PostConstruct
public void init() {
HttpComponentsClientHttpRequestFactory requestFactory =
new HttpComponentsClientHttpRequestFactory();
requestFactory.setConnectTimeout(connectTimeout);
requestFactory.setReadTimeout(readTimeout);
this.restTemplate = new RestTemplate(requestFactory);
}
问题在于某些请求正在处理几分钟,并且不会引发任何异常。 (我的超时时间要少得多-大约5-10秒) 可能是什么原因?有什么想法吗?
答案 0 :(得分:1)
缺少对setConnectionRequestTimeout(...)的调用
HttpComponentsClientHttpRequestFactory requestFactory =
new HttpComponentsClientHttpRequestFactory();
requestFactory.setConnectTimeout(connectTimeout);
requestFactory.setReadTimeout(readTimeout);
requestFactory.setConnectionRequestTimeout(...);
this.restTemplate = new RestTemplate(requestFactory);