spring-cloud - 基于配置的路由回退
问题描述
应用程序有两个实例:instance-1
和instance-2
。
让我们假设
- instance-1可在
localhost:8090
- instance-2可在
localhost:9080
如何配置zuul代理以便---首先访问instance-1,如果出现任何异常/失败,切换到instance-2
注意:不使用尤里卡
我能够使用带有外观控制器的 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 进行下一次调用。您可以在此处阅读有关这些重试配置的更多信息。
推荐阅读
- ruby-on-rails - 为什么“DalliError:没有可用的服务器”一直出现在日志中,尽管我使用的是 redis?
- python - 电子邮件应用程序中的连接被拒绝
- java - 如何拆分返回的列表
来自文本文件的逗号? - spring - 使用 Hystrix 断路器暂停/恢复 JMS 侦听器
- ruby-on-rails - 使用 Active Storage 对图像进行排序
- python - 用分类变量绘制箱线图
- google-sheets - 如何在谷歌表格上为条件 IF 添加多个数字?
- javascript - cgi 和现代 javascript 用法的区别
- docker - 将 Kubernetes 中的端口映射到两个 Flask 应用程序(前端和后端)
- integer - 引用和不引用之间的流口水整数类型差异