如何使用Azure API管理策略对后端服务进行负载平衡调用?
如何使用策略对一对后端服务的调用进行负载平衡?(在这种情况下,不同地区的一对逻辑应用程序) 我已经通读了,可以看到有关的内容,但我不知道如何(a)测试后端服务是否可用,然后(b)如果主服务不可用,则更改对备份服务的调用如何使用Azure API管理策略对后端服务进行负载平衡调用?,azure,azure-api-management,Azure,Azure Api Management,如何使用策略对一对后端服务的调用进行负载平衡?(在这种情况下,不同地区的一对逻辑应用程序) 我已经通读了,可以看到有关的内容,但我不知道如何(a)测试后端服务是否可用,然后(b)如果主服务不可用,则更改对备份服务的调用 <backend> <forward-request/> </backend> 研究使用发送请求策略。使用它(和等待策略),您可以对几个web服务进行并行调用,并从首先完成的web服务返回结果。这意味着您需要完全跳过转发请
<backend>
<forward-request/>
</backend>
研究使用发送请求策略。使用它(和等待策略),您可以对几个web服务进行并行调用,并从首先完成的web服务返回结果。这意味着您需要完全跳过转发请求,因为您将从这些策略中获得结果数据
或者您可以使用send request来测试某些后端是否可用,然后使用set-backend service和/或重写uri策略来更改目标后端。在这种情况下,您将保留转发请求。研究使用发送请求策略。使用它(和等待策略),您可以对几个web服务进行并行调用,并从首先完成的web服务返回结果。这意味着您需要完全跳过转发请求,因为您将从这些策略中获得结果数据
或者您可以使用send request来测试某些后端是否可用,然后使用set-backend service和/或重写uri策略来更改目标后端。在这种情况下,您将继续转发请求。实现这一点的另一种方法是,您可以使用with或 有点像
<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>
这将在主后端返回错误的情况下继续在备份后端重试。实现这一点的另一种方法是,您可以与或一起使用 有点像
<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>
这将在主后端返回错误时继续在备份后端重试