Co to jest system Pub/Sub?

Nov 28 2022
Odwiedź systemdesign.us, aby znaleźć pytania do wywiadu dotyczącego projektowania systemów oznaczone przez firmy i ich rozwiązania.

Odwiedź systemdesign.us, aby znaleźć pytania do wywiadu dotyczącego projektowania systemów oznaczone przez firmy i ich rozwiązania. Śledź nas na YouTube , LinkedIn , Twitterze , Medium .

System Pub/Sub to system przesyłania wiadomości, który umożliwia użytkownikom subskrybowanie określonych tematów i otrzymywanie wiadomości tylko z tematów, które subskrybują. Może to być przydatne w różnych zastosowaniach, takich jak sieci społecznościowe, kanały informacyjne i gry.

Jak działa pub/sub?

Wydawca (lub nadawca wiadomości) wysyła wiadomość na określony temat. Wiadomość jest następnie odbierana przez wszystkich subskrybentów (lub odbiorców wiadomości) tego tematu. Subskrybenci mogą w dowolnym momencie zrezygnować z subskrypcji tematu.

Komponenty Pub/Sub

https://aws.amazon.com/pub-sub-messaging/

Istnieją trzy główne komponenty systemu pub/sub:

tematy : wiadomości są podzielone na tematy, a użytkownicy mogą subskrybować określone tematy, aby otrzymywać wiadomości.

wydawcy : wydawcy są nadawcami wiadomości i wysyłają wiadomości na określone tematy.

subskrybenci : subskrybenci są odbiorcami wiadomości i otrzymują wszystkie wiadomości z tematów, które subskrybują.

Dlaczego warto korzystać z opcji pub/sub?

Pub/sub może być przydatne w aplikacjach wymagających aktualizacji w czasie rzeczywistym z różnych źródeł. Na przykład aplikacja sieci społecznościowej może potrzebować pokazywać użytkownikom aktualizacje od ich znajomych, a także wiadomości i inne treści. Korzystając z pub/sub, aplikacja może odbierać wszystkie te wiadomości w czasie rzeczywistym, bez konieczności ciągłego sondowania nowych danych.

Jakie są zalety pub/sub?

Korzystanie z funkcji pub/sub ma kilka zalet:

  • Aktualizacje w czasie rzeczywistym: subskrybenci mogą otrzymywać wiadomości natychmiast po ich opublikowaniu, bez konieczności oczekiwania na regularny interwał odpytywania.
  • Elastyczne subskrypcje: subskrybenci mogą subskrybować tylko te tematy, które ich interesują, i mogą zrezygnować z subskrypcji w dowolnym momencie.
  • Skalowalność: system pub/sub można łatwo skalować, aby obsłużyć dużą liczbę tematów i subskrybentów.
  • Pozwala na komunikację w czasie rzeczywistym pomiędzy wydawcami a subskrybentami.
  • Jest to skalowalny system, który może obsłużyć dużą liczbę tematów i subskrybentów.
  • Jest elastyczny, ponieważ subskrybenci mogą wybrać tematy, z których chcą otrzymywać wiadomości.

Istnieją pewne potencjalne wady korzystania z pub/sub:

  • Dostarczenie wiadomości nie jest gwarantowane: Ponieważ wiadomości są wysyłane asynchronicznie, nie ma gwarancji, że zostaną odebrane przez wszystkich subskrybentów. Oznacza to, że niektóre wiadomości mogą zostać pominięte, jeśli subskrybent jest offline lub wiadomość jest opóźniona z jakiegoś powodu.
  • Większe opóźnienie: asynchroniczne dostarczanie komunikatów może powodować większe opóźnienia niż synchroniczne dostarczanie komunikatów (na przykład w przypadku tradycyjnego systemu przesyłania wiadomości).
  • Ograniczona historia wiadomości: większość systemów publikowania/subskrypcji śledzi tylko najnowsze wiadomości dla każdego tematu, co oznacza, że ​​subskrybenci będą otrzymywać nowe wiadomości dopiero po dokonaniu subskrypcji. Może to stanowić problem w przypadku aplikacji wymagających pełnej historii wiadomości.
  • Wydawca musi znać temat wiadomości, aby wysłać ją do właściwych subskrybentów.
  • Subskrybenci mogą otrzymywać wiadomości, które ich nie interesują, jeśli subskrybują zbyt wiele tematów.
  • Nie ma gwarancji, że wiadomości zostaną dostarczone w kolejności lub w ogóle.

Lista technologii Pub/Sub

  • Apache Kafka
  • Usługa prostych powiadomień Amazon (SNS)
  • Google Cloud Pub/Sub
  • Siatka zdarzeń platformy Microsoft Azure
  • IBM Cloud Pub/Sub
  • Serwer strumieniowy NATS
  • Zdarzenia w chmurze
  • MQTT
  • TUPAĆ
  • Haki internetowe
  • Apache ActiveMQ Artemis
  • KrólikMQ