【发布时间】:2018-10-24 04:04:32
【问题描述】:
如果第一次尝试失败,状态码为 429 或 500,如何回退到另一个 API 服务?
考虑这种情况: 网关应该首先尝试微服务主机,但如果它超时或回答非 2xx 状态码,它应该尝试下一个。
【问题讨论】:
-
当您说“另一个 API 服务”时,您是指完全不同类型的 API 服务,还是指存在于另一台主机上的另一个服务实例?
-
例如 localhost:8080/get “重定向”到 httpbin.org/v1/get 如果它返回 4xx 或 500 它应该回退到 example.org/v2/get
-
在这种情况下,您不能只编写向第一个服务发送请求的代码,如果失败,编写更多代码将请求发送到第二个服务吗?理论上,您也可以在其上编写另一个抽象。也有许多不同类型的集成模式。我还有一个问题是
httpbin.org/v1/get是否是example.org/v2/get的首选数据源? -
对客户来说应该是完全透明的。我不想为 web、移动等中的每种类型的客户端编写代码 也许有序数组委员会的优先领域是一个很好的顺序偏好。你认为我可以通过 express gateway 实现这个目标吗?
-
API 网关或逻辑所在的另一个代理服务。
标签: node.js express microservices express-gateway