Spring cloud ReadTimeout 问题解决

今天使用Spring cloud @FeignClient 调用远程服务的时候,出现readTimeout问题,通过找资料解决方式如下

在Spring.properties 配置文件中添加如下属性解决

ribbon.ReadTimeout=61000
ribbon.ConnectTimeout=61000

 

如果是yml文件可以使用格式

ribbon:

    ReadTimeout :61000

    ConnectTimeout:61000

  

这个属性ribbon 是在Spring-cloud-starter-feign下依赖包下,通过添加以下依赖就可以进行调用远程服务

 

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

调用其他的restful服务的方式如下:

@FeignClient(name="demo-feign",path="/api")
public interface Demo{

@GetMapping("/getName") 
getName(@RequestParam("name")String name);

}

 

其中name代表 sprngboot 项目的应用名,path代表调用远程项目的前缀。然后在SpringBoot 启动类上,加上@EnableFeignClients(basePackages =“你调用远程服务的接口的包名“)扫描

 

而且今天还遇到一个问题,让我铭记于心,记下来显示自己的不细心:

在使用Spring.properties 配置ReadTimeout 属性时,Spring boot在调用远程服务的时候,出现以下问题,一直懵逼了很久。最后给大家参考

For input string xxx

Could not convert xxx x to java.lang.Integer

原因竟然是在.properties配置ribbon.ReadTimeout=6000 多加一个空格,Springboot 读取配置属性的时候认为是字符串,导致一直报错。最后去掉空格解决了

 

posted @ 2018-06-08 20:10 u清 阅读(...) 评论(...) 编辑 收藏