Dela via


Konfigurera API för server-skickade händelser

GÄLLER FÖR: Utvecklare | Grundläggande | Basic v2 | Standard | Standard v2 | Premium | Premium v2

Den här artikeln innehåller riktlinjer för att konfigurera ett API i API Management som implementerar serversända händelser (SSE). SSE baseras på HTML5-standarden EventSource för automatisk dataströmning (push-teknik) till en klient via HTTP efter att en klientanslutning har upprättats.

Tips

API Management ger också inbyggt stöd för WebSocket-API:er, som håller en enda, beständig, dubbelriktad anslutning öppen mellan en klient och server.

Förutsättningar

Riktlinjer för Handelshögskolan

Följ dessa riktlinjer när du använder API Management för att nå ett serverdels-API som implementerar SSE.

  • Välj en tjänstnivå för långvariga HTTP-anslutningar – SSE förlitar sig på en långvarig HTTP-anslutning som stöds på vissa API Management-prisnivåer. Långvariga anslutningar stöds på de klassiska API Management-nivåerna och v2 API Management-nivåerna, men inte på förbrukningsnivån.

  • Håll inaktiva anslutningar vid liv – Om en anslutning mellan klienten och serverdelen kan vara inaktiv i 4 minuter eller längre implementerar du en mekanism för att hålla anslutningen vid liv. Du kan till exempel aktivera en TCP-keepalive-signal (Transmission Control Protocol) på anslutningens serverdel eller skicka trafik från klientsidan minst en gång per 4 minuter.

    Den här konfigurationen krävs för att åsidosätta tidsgränsen för den inaktiva sessionen på 4 minuter som Azure Load Balancer tillämpar, vilket används i API Management-infrastrukturen.

  • Vidarebefordra händelser omedelbart till klienter – Inaktivera svarsbuffertning på forward-request principen så att händelser omedelbart vidarebefordras till klienterna. Till exempel:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Undvik andra principer som buffrar svar – Vissa principer som validate-content kan även buffra svarsinnehåll och bör inte användas med API:er som implementerar SSE.

  • Undvik att logga begäran/svarstext för Azure Monitor, Application Insights och Event Hubs – Du kan konfigurera API-begärandeloggning för Azure Monitor eller Application Insights med hjälp av diagnostikinställningar. Med diagnostikinställningarna kan du logga begäran/svarstexten i olika skeden av körningen av begäran. För API:er som implementerar SSE kan loggning av begäran/svarstext orsaka oväntad buffring, vilket kan leda till problem. Diagnostikinställningar för Azure Monitor och Application Insights som konfigurerats i omfånget global/alla API:er gäller för alla API:er i tjänsten. Du kan åsidosätta inställningarna för enskilda API:er efter behov. När du loggar till Event Hubs konfigurerar du omfånget och mängden kontextinformation för loggning av begäran/svar med hjälp av logg-till-eventhubs. För API:er som implementerar SSE kontrollerar du att du inaktiverar loggning av begärande-/svarstexter för Azure Monitor, Application Insights och Event Hubs.

  • Inaktivera svarscachelagring – För att säkerställa att meddelandena till klienten är tidsenliga, verifiera att svarscachelagring inte är aktiverad. Mer information finns i cachelagringsprinciper för API-hantering.

  • Test-API under belastning – Följ allmänna metoder för att testa ditt API under belastning för att identifiera prestanda- eller konfigurationsproblem innan du går in i produktion.