SpringBoot 关于Feign的超时时间配置操作

网友投稿 2483 2022-12-05

SpringBoot 关于Feign的超时时间配置操作

SpringBoot 关于Feign的超时时间配置操作

目录Feign的超时时间配置feign 时间设置Feign调用问题 \ 超时1、项目结构2、在其他微服务中 引入clientXX.jar3、feign调用超时

Feign的超时时间配置

feign 时间设置

contextId: 可以指定为某个接口进行单独的超时设置

@FeignClient(value = "user",contextId ="device")

public interface DeviceFeignService {

@RequestMapping(value = { "/deviceId" })

jsonResult

getByDeviceId(@RequestParam("deviceId") final Long deviceId);

}

feign:

client:

config:

#default代表所有服务

default:

#feign客户端建立连接超时时间

connect-timeout: 10000

#feign客户端建立连接后读取资源超时时间

read-timeout: 20000

#而service-test表示当调用service-test这个服务时,用下面的配置

device:

connect-timeout: 10000

read-timeout: 20000

Feign调用问题 \ 超时

1、项目结构

每个微服务是provider情况下有一个client模块(里面含有定义好的feignclient 接口) 专门打包出去给其他微服务消费

这样的话 其他需要调用的微服务只要把这个client jar包引入即可,

2、在其他微服务中 引入clientXX.jar

这时候有一个坑, 就是 @EnableFeignClients这个注解默认是只扫描项目启动application下的包 如果不同项目可能包路径不一致, 所以@EnableFeignClients得指定你的client.jar里面的路径 或者两个项目中 共同的顶级路径 例如com.XX.cloud 同一个公司内部 顶层包结构应该是一致的

3、feign调用超时

默认feign调用超时是1000毫秒的 有断点就肯定超时

需要加上以下配置

feign.hystrix.enabled=true

#feign调用默认是1000毫秒=1秒 应该设置成更长时间1000 * 60 * 5 = 5分钟 add bXfiTcy six-vision

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=300000

hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=300000

hystrix.command.default.circhttp://uitBreaker.forceClosed=true

#hystrix.command.default.execution.timeout.enabled=false

#请求处理的超时时间 add by six-vision

ribbon.ReadTimeout=300000

ribbon.SocketTimeout=300000

#请求连接的超时时间 add by six-vision

ribbon.ConnectTimeout: 30000

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:教育行业类小程序(教育类小程序有哪些)
下一篇:MyBatis insert语句返回主键和selectKey标签方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~