基于配置的路由回退
Configuration based fallback for route
应用程序有两个实例:instance-1
和 instance-2
。
让我们假设
- instance-1 可在
localhost:8090
访问
- instance-2 可在
localhost:9080
访问
我如何配置 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。
应用程序有两个实例:instance-1
和 instance-2
。
让我们假设
- instance-1 可在
localhost:8090
访问
- instance-2 可在
localhost:9080
访问
我如何配置 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。