知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
-Dsun.net.client.defaultConnectTimeout=<TimeoutInMiliSec> -Dsun.net.client.defaultReadTimeout=<TimeoutInMiliSec>
//Create resttemplate RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory()); //Override timeouts in request factory private SimpleClientHttpRequestFactory getClientHttpRequestFactory() { SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory(); // or // HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(); //Connect timeout clientHttpRequestFactory.setConnectTimeout(10_000); //Read timeout clientHttpRequestFactory.setReadTimeout(10_000); return clientHttpRequestFactory; }
注意下面使用了 Java 11 語法 var factory = new SimpleClientHttpRequestFactory();
package cn.netkiller.consul.consumer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfiguration { @Bean public RestTemplate restTemplate() { var factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(3000); factory.setReadTimeout(3000); return new RestTemplate(factory); } }