网上查到说openfeign是基于ribbon实现的所以可以直接配置ribbon的超时也可以实现
全局配置
ribbon:
ConnectTimeout: 1000
ReadTimeout: 1000
局部配置
serverName
ribbon:
ConnectTimeout: 1000
ReadTimeout: 1000
但是我测试了一下不好用。通过一下直接配置feign的方式可以实现
配置文件方式
feign:
client:
config:
default: #这里就是指的所有被加载的默认FeignClient实现的服务配置都生效
connectTimeout: 2000
readTimeout: 2000
其中default可以替换成具体的服务名称
编码方式
public static int connectTimeOutMillis = 2000;//超时时间
public static int readTimeOutMillis = 2000;
@Bean
public Request.Options options() {
return new Request.Options(connectTimeOutMillis, readTimeOutMillis);
}
重试通过ribbon 我也没有设置成功
ribbon:
ConnectTimeout: 1000
ReadTimeout: 1000
# 是否所有操作都进行重试
OkToRetryOnAllOperations: true
# 同一实例最大重试次数,不包括首次调用
MaxAutoRetries: 1
# 重试其他实例的最大重试次数,不包括首次所选的server
MaxAutoRetriesNextServer: 3
也是通过配置feign编码的方式配置成功的
@Bean
public Retryer feignRetryer() {
Retryer retryer = new Retryer.Default(100, 1000, 5);
return retryer;
}
如果有ribbon为甚么没有成功的。请赐教!