如何使用策略将余额调用加载到一对后端服务? (在这种情况下,不同地区对逻辑应用的)如何使用Azure API管理策略来将余额调用加载到后端服务?
我已经通过了API Management policies阅读并可以看到周围control flow的东西,但我不能工作如何(一)测试后端服务是可用的,然后(二)改变调用备份服务如果主要是不可用
<backend>
<forward-request/>
</backend>
如何使用策略将余额调用加载到一对后端服务? (在这种情况下,不同地区对逻辑应用的)如何使用Azure API管理策略来将余额调用加载到后端服务?
我已经通过了API Management policies阅读并可以看到周围control flow的东西,但我不能工作如何(一)测试后端服务是可用的,然后(二)改变调用备份服务如果主要是不可用
<backend>
<forward-request/>
</backend>
考虑使用发送请求的策略。有了它(和等待策略),您可以对一些Web服务进行并行调用,并从首先完成的一个返回结果。这意味着您需要完全跳过前向请求,因为您将从这些策略中获取结果数据。
或者您可以使用send-request来测试某个后端是否可用,然后使用set-backend-service和/或rewrite-uri策略来更改目标后端。在这种情况下,你会保持前进的要求。
实现这个可能是你可以用set backend service或send-request
使用retry policy喜欢的东西
<backend>
<retry condition="@(context.Response.StatusCode == 400 || context.Response.StatusCode >= 500)" count="10" interval="10" max-interval="100" delta="10" first-fast-retry="false">
<choose>
<when condition="@(context.Response != null && (context.Response.StatusCode == 400 || context.Response.StatusCode >= 500)">
<set-backend-service base-url="http://echoapibackup.cloudapp.net/api" />
</when>
<otherwise>
<set-backend-service base-url="http://echoapi.cloudapp.net/api" />
</otherwise>
</choose>
<forward-request />
</retry>
</backend>
这将在情况下,你的主要后端返回一个错误,将继续重试另一种方式在您的备份后端。