2017-04-19 2 views
0

Wie können Sie mithilfe von Richtlinien Lastenausgleichsaufrufe an zwei Back-End-Dienste verteilen? (in diesem Fall ein Paar von Logic Apps in verschiedenen Regionen)Wie können Sie die Azure-API-Verwaltungsrichtlinie zum Laden von Kontostandsaufrufen an einen Back-End-Dienst verwenden?

Ich habe durch die API Management policies lesen und etwas um die control flow sehen kann, aber ich kann nicht arbeiten, wie man (a) testen Sie das Back-End Dienst verfügbar ist, und dann (b) den Anruf an den Backup-Dienst ändern, wenn die primären nicht verfügbar ist

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

Antwort

0

Blick in send-Anforderungsrichtlinie verwenden. Mit ihr (und einer Warte-Richtlinie) könnten Sie parallele Aufrufe an einige Web-Services durchführen und das Ergebnis von einem zurückgeben, der zuerst abgeschlossen wird. Das würde bedeuten, dass Sie die Vorwärtsanfrage ganz überspringen müssen, da Sie Ergebnisdaten von diesen Richtlinien erhalten.

Oder Sie könnten send-Anfrage verwenden, um zu testen, ob bestimmter Backend zur Verfügung steht und dann mit Set-Back-End-Service und/oder umschreiben-uri Richtlinien Ziel-Backend zu ändern. In diesem Fall werden Sie die Anfrage weiterleiten.

1

Eine weitere Möglichkeit könnte dies zu erreichen, dass Sie die retry policy mit set backend service oder send-request verwenden können

mit so etwas wie

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

Dies wird im Falle eines Fehlers Ihre primäre Backend zurückgibt, ein neuer Versuch gestartet werden auf Ihrem Backup-Backend.

Verwandte Themen