首先声明一点,这里的重试不是报错以后的重试,而是负载均衡客户端发现远程请求实例不可达之后,去重试其他实例。
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具。
Feign基于Ribbon做了封装,注意:spring-cloud-starter-feign 里面已经包含了 spring-cloud-starter-ribbon(Feign 中也使用了 Ribbon),Feign的重试配置是通过设置Ribbon的配置来设定的。因为ribbon的重试机制和Feign的重试机制有冲突,所以Feign源码中默认关闭Feign的重试机制。如下:
要开启Feign的重试机制如下:(Feign默认重试五次 源码中有)
@Bean
Retryer feignRetryer() {
return new Retryer.Default();
}
负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容。因为负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段之一。
我们通常所说的负载均衡都指的是服务端负载均衡,例如用nginx来完成请求分发工作等。
而客户端负载均衡和服务端负载均衡最大的不同点在于上面所提到服务清单所存储的位置。在客户端负载均衡中&