首页 > 解决方案 > 基于配置的路由回退

问题描述

应用程序有两个实例:instance-1instance-2

让我们假设

  1. instance-1可在localhost:8090
  2. instance-2可在localhost:9080

如何配置zuul代理以便---首先访问instance-1,如果出现任何异常/失败,切换到instance-2

注意:不使用尤里卡

我能够使用带有外观控制器的 hystrix 并在后备中通过 RestTemplate调用instance-2来使其工作。

但我正在寻找一些更好的方法,其中 Zuul 负责路由以及 HTTPHeaders、HttpMethod 和其他请求属性的镜像。

如果有人尝试过类似的事情,请建议我。

标签: spring-cloudnetflix-zuulspring-cloud-netflixhystrixapi-gateway

解决方案


您可以将 Zuul 配置为在当前实例和下一个实例上重试。

zuul:
  retryable: true

ribbon:
  MaxAutoRetries: 1
  MaxAutoRetriesNextServer: 3
  OkToRetryOnAllOperations: true

yourApplication:
    ribbon:
        listOfServers: localhost:8090, localhost:9080

根据上面的配置,如果路由到 8090 实例失败,Zuul 会再尝试一次连接到 8090,如果该调用也失败,Zuul 将路由到 9080 进行下一次调用。您可以在此处阅读有关这些重试配置的更多信息。


推荐阅读