Komunikacja synchroniczna a asynchroniczna

Request synchroniczny

  • Blokujące IO

  • kod wykonywany w kolejności pisania

  • łatwy debug i monitoring

  • wątek per żądanie

Request asynchroniczny

  • nieblokujące IO

  • potrzeba dodatkowych bibliotek

  • nieoczywisty kod

  • pętla zdarzeń (event loop)

Wzorce obsługi żądań

  • wątek per żądanie

  • pętla zdarzeń (event loop)

Podejście syncchroniczne - wady

  • słaba utylizacja CPU

  • duże zużycie pamięci

  • context switch

  • ograniczona przepustowość

Fibers

  • lekkie wątki

  • zachowują kolejność wykonywania kodu

  • lepsza utylizacja zasobów niż wątki

  • włókno per żądanie

Podejście strumieniowe

  • strumienie danych

  • real-time

  • niższe zużycie pamięci

  • łatwa kompozycja wywołań (RX)

Last updated