gpt4 book ai didi

azure - 使用 Azure API 管理模拟故障转移

转载 作者:行者123 更新时间:2023-12-02 06:16:09 24 4
gpt4 key购买 nike

Azure API 管理支持多区域部署,这对于我们的 API 和后端服务的高可用性非常有用。我们正在使用它来测试我们的多区域部署,但是,我们如何测试它呢?我们如何模拟或手动触发 API 管理上的故障转移?

提前致谢

最佳答案

APIM 的优质捆绑提供了多区域能力。这确保了 APIM 节点更接近可能的客户端,此外,如果其中一个区域发生故障,流量将重新路由到其他区域。但这仅在客户端和 APIM 节点之间得到保证,对于 APIM <-> 后端通信不提供此类保证,因为从 APIM 端无法推断您的后端基础设施。所以这需要一些配置。

您可以在后端前面使用流量管理器将多个后端端点聚合为一个,并依靠运行状况探测来路由流量(就像 APIM 对其自己的区域端点所做的那样)。

或者,您可以在 APIM 策略中处理多个后端端点,在某种情况下在一个和另一个之间切换流量。这是一些简单的实现:

<policies>
<inbound>
<base />
</inbound>
<backend>
<retry condition="@(context.Response.StatusCode >= 500)" count="1" interval="0" first-fast-retry="true">
<choose>
<when condition="@(context.Response.StatusCode >= 500)">
<set-backend-service base-url="https://my-second-endpoint" />
</when>
</choose>

<forward-request />
</retry>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>

现在,这是相当低效的,因为它总是对默认端点进行第一次调用,等待 500,然后对替代端点进行第二次调用。您可以通过使用缓存策略来存储事件端点来改进这一点,并在检测到 500 时进行切换。

或者,您可以进行静态配置,并依靠外部运行状况探测和自动化来更新 APIM 策略,以防发生事件。

关于azure - 使用 Azure API 管理模拟故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com