RestTemplate调用超时问题解决

问题描述

工作中,在调用同事写的某个接口的时候,使用的调用方式是RestTemplate。最开始数据量小,调用正常,随着数据量增加,这个接口过分的慢,后台日志出现Read time out异常。

问题分析

  • 最开始我以为是网关设置的ribbon超时过短导致,调大后,还是不行。
  • 然后我配置了自定义的一个RestTemplate,由于集成了公司框架,里面有默认的restTemplate,所以为当前bean指定一个名字。如下
	@Configuration
	public class RestTemplateConfig{
    
    
		@Bean("PermissionRestTemplate")
		public RestTemplate getRestTemplate(){
    
    
			HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
			factory.setConnectionTimeout(5000);
			factory.setConnectionRequestTimeout(5000);
			factory.setReadTimeout(120*1000);
			return new RestTemplate(factory);
		}
	}

问题解决

  • 在使用的时候指定使用配置的restTemplate。调用就能够正常获取数据了。
	@Qualifier("permissionRestTemplate")
	@Autowired
	private RestTemplate restTemplate;

猜你喜欢

转载自blog.csdn.net/qq_41570752/article/details/115197700
今日推荐