Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Azure API管理策略对后端服务进行负载平衡调用?_Azure_Azure Api Management - Fatal编程技术网

如何使用Azure API管理策略对后端服务进行负载平衡调用?

如何使用Azure API管理策略对后端服务进行负载平衡调用?,azure,azure-api-management,Azure,Azure Api Management,如何使用策略对一对后端服务的调用进行负载平衡?(在这种情况下,不同地区的一对逻辑应用程序) 我已经通读了,可以看到有关的内容,但我不知道如何(a)测试后端服务是否可用,然后(b)如果主服务不可用,则更改对备份服务的调用 <backend> <forward-request/> </backend> 研究使用发送请求策略。使用它(和等待策略),您可以对几个web服务进行并行调用,并从首先完成的web服务返回结果。这意味着您需要完全跳过转发请

如何使用策略对一对后端服务的调用进行负载平衡?(在这种情况下,不同地区的一对逻辑应用程序)

我已经通读了,可以看到有关的内容,但我不知道如何(a)测试后端服务是否可用,然后(b)如果主服务不可用,则更改对备份服务的调用

<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>

这将在主后端返回错误时继续在备份后端重试