SpringBoot关于Feign的超时时间配置操作
⽬录
Feign的超时时间配置
feign 时间设置
Feign调⽤问题 \ 超时
1、项⽬结构
2、在其他微服务中引⼊clientXX.jar
3、feign调⽤超时
Feign的超时时间配置
feign 时间设置
contextId:可以指定为某个接⼝进⾏单独的超时设置
@FeignClient(value = "user",contextId ="device")
public interface DeviceFeignService {
@RequestMapping(value = { "/deviceId" })
JsonResult<Device>
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毫秒的有断点就肯定超时
需要加上以下配置
abled=true
#feign调⽤默认是1000毫秒=1秒应该设置成更长时间1000 * 60 * 5 = 5分钟 add by six-vision ution.isolation.thread.timeoutInMilliseconds=300000
hystrixmand.default.circuitBreaker.sleepWindowInMilliseconds=300000
hystrixmand.default.circuitBreaker.forceClosed=true
#abled=false
#请求处理的超时时间 add by six-vision
ribbon.ReadTimeout=300000
ribbon.SocketTimeout=300000springboot结构
#请求连接的超时时间 add by six-vision
ribbon.ConnectTimeout: 30000
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论