Udostępnij za pośrednictwem


Konfigurowanie interfejsu API dla zdarzeń wysyłanych przez serwer

DOTYCZY: Developer | Podstawowa | Podstawowa wersja 2 | Standardowa | Standardowa, wersja 2 | Premium

Ten artykuł zawiera wskazówki dotyczące konfigurowania interfejsu API w usłudze API Management, który implementuje zdarzenia wysyłane przez serwer (SSE). Technologia SSE jest oparta na standardzie HTML5 EventSource na potrzeby automatycznego przesyłania strumieniowego (wypychania) danych do klienta za pośrednictwem protokołu HTTP po nawiązaniu połączenia przez klienta.

Napiwek

Usługa API Management zapewnia również natywną obsługę interfejsów API protokołu WebSocket, które zachowują pojedyncze, trwałe, warunkowe połączenie otwarte między klientem a serwerem.

Wymagania wstępne

Wytyczne dotyczące SSE

Postępuj zgodnie z tymi wytycznymi w przypadku korzystania z usługi API Management, aby uzyskać dostęp do interfejsu API zaplecza, który implementuje funkcję SSE.

  • Wybierz warstwę usługi dla długotrwałych połączeń HTTP — usługa SSE opiera się na długotrwałym połączeniu HTTP obsługiwanym w niektórych warstwach cenowych usługi API Management. Długotrwałe połączenia są obsługiwane w warstwach klasycznej i w wersji 2 usługi API Management, ale nie w warstwie Zużycie.

  • Zachowaj bezczynność połączeń — jeśli połączenie między klientem a zapleczem może być bezczynne przez 4 minuty lub dłużej, zaimplementuj mechanizm, aby utrzymać połączenie przy życiu. Na przykład włącz sygnał utrzymania aktywności TCP na zapleczu połączenia lub wyślij ruch z boku klienta co najmniej raz na 4 minuty.

    Ta konfiguracja jest wymagana do zastąpienia limitu czasu bezczynności sesji przez 4 minuty wymuszane przez usługę Azure Load Balancer, która jest używana w infrastrukturze usługi API Management.

  • Przekazywanie zdarzeń natychmiast do klientów — wyłącz buforowanie odpowiedzi w forward-request zasadach , aby zdarzenia zostały natychmiast przekazane klientom. Na przykład:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Unikaj innych zasad buforujących odpowiedzi — niektóre zasady, takie jak validate-content mogą również buforować zawartość odpowiedzi i nie powinny być używane z interfejsami API, które implementują funkcję SSE.

  • Unikaj rejestrowania treści żądań/odpowiedzi dla usług Azure Monitor, Application Szczegółowe informacje i Event Hubs — możesz skonfigurować rejestrowanie żądań interfejsu API dla usługi Azure Monitor lub aplikacji Szczegółowe informacje przy użyciu ustawień diagnostycznych. Ustawienia diagnostyczne umożliwiają rejestrowanie treści żądania/odpowiedzi na różnych etapach wykonywania żądania. W przypadku interfejsów API implementujących funkcję SSE może to spowodować nieoczekiwane buforowanie, co może prowadzić do problemów. Ustawienia diagnostyczne usług Azure Monitor i Application Szczegółowe informacje skonfigurowane w zakresie globalnych/wszystkich interfejsów API mają zastosowanie do wszystkich interfejsów API w usłudze. W razie potrzeby można zastąpić ustawienia poszczególnych interfejsów API. Podczas rejestrowania w usłudze Event Hubs należy skonfigurować zakres i ilość informacji kontekstowych na potrzeby rejestrowania żądań/odpowiedzi przy użyciu usługi log-to-eventhubs. W przypadku interfejsów API implementujących funkcję SSE upewnij się, że wyłączono rejestrowanie treści żądań/odpowiedzi dla usług Azure Monitor, Application Szczegółowe informacje i Event Hubs.

  • Wyłącz buforowanie odpowiedzi — aby upewnić się, że powiadomienia do klienta są terminowe, sprawdź, czy buforowanie odpowiedzi nie jest włączone. Aby uzyskać więcej informacji, zobacz Zasady buforowania usługi API Management.

  • Testowanie interfejsu API pod obciążeniem — postępuj zgodnie z ogólnymi rozwiązaniami, aby przetestować interfejs API pod obciążeniem, aby wykryć problemy z wydajnością lub konfiguracją przed przejściem do środowiska produkcyjnego.

Następne kroki