我刚刚测试了Spring Feign,发现没有immidate故障转移机制。
我有一个服务A,它调用服务B。服务B有两个实例,我检查了一下,平衡工作--这两个实例都被调用了。但当我停止其中一个服务时,有一段时间我在调用服务A时收到错误页面-因为无法与B连接。
我有点期待,在feign中也有一个故障转移,所以当发现问题时,A会自动尝试其他B实例。或者我必须直接实现它,例如Hystrix?
发布于 2015-10-08 01:17:07
Spring Cloud Netflix Feign使用Ribbon作为负载均衡器。您描述的情况是与Eureka结合使用的Ribbon所特有的,而不是伪装的。您说得对,坏实例将被缓存30秒的默认值。您可以将ribbon配置为重试某些方法(然后将请求剩余的良好服务器)。您还可以使用eureka.client.registryFetchIntervalSeconds=5缩短eureka/ribbon缓存的寿命(5秒而不是30秒)。
eureka.client.registryFetchIntervalSeconds=5
Hystrix有助于后备,用于处理故障响应,并在出现系统故障时作为断路器)。
https://stackoverflow.com/questions/32969360
相似问题