2

我刚刚测试了 Spring Feign,发现没有即时故障转移机制。

我有一个服务 A,它调用服务 B。服务 B 有 2 个实例,我检查了,平衡工作 - 两者都被调用。但是当我停止其中一个时,有一段时间我在调用服务 A 时收到错误页面 - 因为无法与 B 连接。

我有点期待,feign 中也有故障转移,所以当发现问题时,A 会自动尝试使用其他 B 实例。还是我必须直接使用 Hystrix 来实现它?

4

1 回答 1

0

Spring Cloud Netflix Feign 使用Ribbon作为负载均衡器。您描述的情况是Ribbon加上Eureka所特有的,而不是 Feign 所特有的。您是正确的,坏实例将被缓存默认 30 秒。您可以配置功能区以重试某些方法(然后请求剩余的良好服务器)。您还可以缩短 eureka/ribbon 缓存的生命周期eureka.client.registryFetchIntervalSeconds=5(5 秒而不是 30 秒)。

Hystrix 有助于处理故障响应的回退,并在出现系统故障时作为断路器)。

于 2015-10-07T17:17:07.397 回答