SpringBoot|SpringBoot 关于Feign的超时时间配置操作
目录
- Feign的超时时间配置
- feign 时间设置
- Feign调用问题 \ 超时
- 1、项目结构
- 2、在其他微服务中 引入clientXX.jar
- 3、feign调用超时
Feign的超时时间配置
feign 时间设置
contextId
: 可以指定为某个接口进行单独的超时设置
@FeignClient(value = "https://www.it610.com/article/user",contextId ="device")public interface DeviceFeignService {@RequestMapping(value = https://www.it610.com/article/{"/deviceId" })JsonResultgetByDeviceId(@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: 10000read-timeout: 20000
Feign调用问题 \ 超时
1、项目结构
每个微服务是provider情况下有一个client模块(里面含有定义好的feignclient 接口) 专门打包出去给其他微服务消费
这样的话 其他需要调用的微服务只要把这个client jar包引入即可,
【SpringBoot|SpringBoot 关于Feign的超时时间配置操作】
文章图片
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 by six-visionhystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=300000hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=300000hystrix.command.default.circuitBreaker.forceClosed=true#hystrix.command.default.execution.timeout.enabled=false#请求处理的超时时间add by six-visionribbon.ReadTimeout=300000ribbon.SocketTimeout=300000#请求连接的超时时间 add by six-visionribbon.ConnectTimeout: 30000
文章图片
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考