繁体   English   中英

您如何使用Azure API管理策略来负载均衡对后端服务的调用?

[英]How can you use Azure API Management policy to load balance calls to a backend service?

您如何使用策略来平衡对一对后端服务的调用的负载? (在这种情况下,位于不同区域的一对Logic App)

我已经阅读了API管理策略 ,可以看到控制流周围的内容,但是我无法解决如何(a)测试后端服务是否可用,然后(b)更改对备份服务的调用如果主服务器不可用

<backend>  
     <forward-request/>  
</backend> 

实现此目的的另一种方法是,您可以将重试策略设置的后端服务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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM