今天在系统出现一个错误信息,如下:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Feb 08 10:21:23 CST 2018
There was an unexpected error (type=Internal Server Error, status=500).
NUMBEROF_RETRIES_NEXTSERVER_EXCEEDED
查资料才知道:
NUMBEROF_RETRIES_NEXTSERVER_EXCEEDED:超过重试服务器数量
NUMBEROF_RETRIES_EXCEEDED:超过重试数量
在使用Feign中,查看 Feign.java 发现有默认重试机制,默认重试5次
public Default() {
this(100, SECONDS.toMillis(1), 5);
}
public Default(long period, long maxPeriod, int maxAttempts) {
this.period = period;
this.maxPeriod = maxPeriod;
this.maxAttempts = maxAttempts;
this.attempt = 1;
}
解决的办法
1.可以禁止重试
/**
* @Title: feignRetryer
* @Description: 禁止重试
* @return
*/
@Bean
Retryer feignRetryer() {
return new Retryer() {
@Override
public void continueOrPropagate(RetryableException e) {
throw e;
}
@Override
public Retryer clone() {
return this;
}
};
}