基于配置的路由回退

Configuration based fallback for route

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

让我们假设

  1. instance-1 可在 localhost:8090
  2. 访问
  3. instance-2 可在 localhost:9080
  4. 访问

我如何配置 zuul 代理以便 --- 首先访问 instance-1 并且在任何异常/失败的情况下,切换到 instance-2

注意:没有使用Eureka

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

但我正在寻找一些更好的方法,其中路由由 Zuul 处理,同时镜像 HTTPHeaders、HttpMethod 和其他请求属性。

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

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

zuul:
  retryable: true

ribbon:
  MaxAutoRetries: 1
  MaxAutoRetriesNextServer: 3
  OkToRetryOnAllOperations: true

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

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