[英]How can you use Azure API Management policy to load balance calls to a backend service?
实现此目的的另一种方法是,您可以将重试策略与设置的后端服务或send-request一起使用
用类似的东西
<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>
万一您的主要后端返回错误,它将继续在您的备份后端上重试。
研究使用发送请求策略。 使用它(和等待策略),您可以并行调用几个Web服务,并从第一个完成的服务返回结果。 这意味着您将完全跳过转发请求,因为您将从这些策略中获取结果数据。
或者您可以使用send-request测试某些后端是否可用,然后使用set-backend-service和/或rewrite-uri策略更改目标后端。 在这种情况下,您将继续转发请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.