Architektura API — wywołania synchroniczne, asynchroniczne i równoległe

May 07 2023
Szybki kurs z infografikami wyjaśniającymi, co one oznaczają i kiedy którego używać. Tło Jednym z krytycznych aspektów programowania REST API jest sposób, w jaki klienci wysyłają żądania i otrzymują odpowiedzi.

Szybki kurs z infografikami wyjaśniającymi, co one oznaczają i kiedy którego używać.

Tło

Jednym z krytycznych aspektów programowania REST API jest sposób , w jaki klienci wysyłają żądania i otrzymują odpowiedzi.

W tym segmencie omówię 3 główne metody wykonywania żądań w interfejsach API REST - wywołania synchroniczne, asynchroniczne i równoległe.

Przedstawię zalety i wady każdej metody oraz kiedy użyć której z nich, aby uzyskać maksymalny wzrost wydajności.

Powiązane czytanie

Napisałem obszernie o projektowaniu interfejsów API, wydajności, bezpieczeństwie, wersjonowaniu i najlepszych praktykach tworzenia diagramów. Sprawdź moją serię, do której link znajduje się poniżej, aby dowiedzieć się więcej!

Połączenia synchroniczne

Wywołania synchroniczne to najczęstsza metoda wysyłania żądań w interfejsie API REST.

W wywołaniach synchronicznych aplikacja kliencka wysyła żądanie do serwera i czeka na odpowiedź przed przejściem do następnego kroku. Oznacza to, że aplikacja kliencka jest blokowana do momentu otrzymania odpowiedzi z serwera.

zalety:

  • Wywołania synchroniczne są łatwe do wdrożenia i zrozumienia.
  • Są przydatne w małych aplikacjach o małym natężeniu ruchu .
  • Wywołania synchroniczne mogą być powolne i nieefektywne, szczególnie w przypadku dużych aplikacji o dużym natężeniu ruchu.
  • Mogą powodować problemy z wydajnością , jeśli odpowiedź serwera trwa zbyt długo.
  • Używaj wywołań synchronicznych, gdy aplikacja ma małe natężenie ruchu lub jest stosunkowo mała.
  • Są również przydatne w aplikacjach, w których klient musi czekać na odpowiedź przed przejściem do następnego kroku.
Źródło: Abdul R. Wahab

Połączenia asynchroniczne

Wywołania asynchroniczne to metoda wykonywania żądań, w której aplikacja kliencka wysyła żądanie do serwera i kontynuuje wykonywanie innych zadań w oczekiwaniu na odpowiedź.

Oznacza to, że aplikacja kliencka nie jest blokowana podczas oczekiwania na odpowiedź z serwera.

zalety:

  • Wywołania asynchroniczne są szybsze i bardziej wydajne niż wywołania synchroniczne.
  • Są przydatne w przypadku dużych aplikacji o dużym natężeniu ruchu.
  • Wywołania asynchroniczne są bardziej złożone do zaimplementowania niż wywołania synchroniczne.
  • Mogą być trudne do debugowania, jeśli w żądaniu lub odpowiedzi występują błędy.
  • Używaj wywołań asynchronicznych, gdy aplikacja ma duże natężenie ruchu lub jest stosunkowo duża.
  • Przydają się również w przypadku aplikacji, w których klient nie musi czekać na odpowiedź przed przejściem do kolejnego kroku.
Źródło: Abdul R. Wahab

Połączenia równoległe

Wywołania równoległe to metoda wykonywania wielu żądań jednocześnie .

W wywołaniach równoległych aplikacja kliencka wysyła jednocześnie wiele żądań do serwera , a serwer odpowiada na każde żądanie indywidualnie .

zalety:

  • Połączenia równoległe są szybsze i bardziej wydajne niż połączenia sekwencyjne.
  • Są przydatne w przypadku dużych aplikacji o dużym natężeniu ruchu.
  • Wywołania równoległe mogą powodować problemy z wydajnością, jeśli serwer nie jest przeznaczony do jednoczesnej obsługi wielu żądań.
  • Mogą również powodować problemy, jeśli istnieją zależności między żądaniami.
  • Używaj połączeń równoległych, gdy aplikacja ma duże natężenie ruchu lub jest stosunkowo duża.
  • Są również przydatne w aplikacjach, w których klient musi jednocześnie wysyłać wiele żądań.
Źródło: Abdul R. Wahab

Końcowe przemyślenia

Tak więc wybór wykonywania wywołań synchronicznych, asynchronicznych lub równoległych w interfejsie API zależy od konkretnych potrzeb aplikacji.

Chociaż wywołania synchroniczne są łatwe do wdrożenia, mogą nie być odpowiednie dla aplikacji na dużą skalę, które wymagają szybkiej i wydajnej komunikacji między klientem a serwerem. Wywołania asynchroniczne i równoległe oferują lepszą wydajność i skalowalność, ale wymagają bardziej zaawansowanej implementacji i mogą mieć własny zestaw wyzwań.

Konieczne jest rozważenie zalet i wad każdej metody oraz rozważenie natężenia ruchu, rozmiaru aplikacji i rodzaju żądań, które należy wykonać przed wyborem konkretnego podejścia.

Wybierając odpowiednią metodę, zespoły inżynierów mogą zapewnić, że ich API zapewnia optymalną wydajność, skalowalność i responsywność dla użytkowników końcowych.