【问题标题】:Manage Fault Tolerance with Feign, Ribbon and Eureka使用 Feign、Ribbon 和 Eureka 管理容错
【发布时间】:2020-11-02 00:15:17
【问题描述】:

我想使用 Feign Client、Ribbon 和 Eureka 实现一个弹性的微服务架构,所以我遇到了一个问题。当微服务目标关闭时,我想重定向到另一个微服务实例,而用户看不到它。例如,我有 4 个微服务 B 实例和一个实例 A:

浏览器客户端调用 A 然后 A 调用 B1 但 B1 关闭 => A 自动重定向到 B2,B2 是 KO 然后 A 调用 B3 并且 B3 向上然后它向 A 返回响应。A 向浏览器客户端返回响应.

请问我该如何实现它。 提前致谢。

【问题讨论】:

    标签: spring-cloud ribbon netflix-eureka spring-cloud-feign feign


    【解决方案1】:

    基本上,Ribbon 应该已经为您找到了活动的实例 - 首先,Eureka 存储和更新有关哪些实例活动的信息,其次,Ribbon 运行 health-check requests to the instances。如果这不适合您,您可以尝试customising the polling intervals for Ribbon。如果您希望针对不同的实例重复失败的请求,您可以将 Spring Cloud Netflix Ribbon 与 Spring Retry 结合使用(请参阅documentation)。

    话虽如此,既然 Spring Cloud Ribbon is now in maintenance mode and will not be making it into the 2020.0.0 release train,我绝对不鼓励在这一点上添加它。可用的替代方法是Spring Cloud LoadBalancer。它支持从 Service Discovery 中检索存活的实例(有或没有 cachinghealth-checks。此时它不支持重试,但在项目积压中有一个 issue

    【讨论】:

    • “如果您希望针对不同的实例重复失败的请求,您可以使用 Spring Cloud Netflix Ribbon 和 Spring Retry”谢谢!
    猜你喜欢
    • 2016-06-21
    • 2019-04-24
    • 2020-10-15
    • 1970-01-01
    • 2017-01-01
    • 2015-12-12
    • 1970-01-01
    • 2017-10-07
    • 2017-06-05
    相关资源
    最近更新 更多