2017-04-19 19 views

回答

0

考虑使用发送请求的策略。有了它(和等待策略),您可以对一些Web服务进行并行调用,并从首先完成的一个返回结果。这意味着您需要完全跳过前向请求,因为您将从这些策略中获取结果数据。

或者您可以使用send-request来测试某个后端是否可用,然后使用set-backend-service和/或rewrite-uri策略来更改目标后端。在这种情况下,你会保持前进的要求。

1

实现这个可能是你可以用set backend servicesend-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> 

这将在情况下,你的主要后端返回一个错误,将继续重试另一种方式在您的备份后端。

相关问题