Co to jest system Pub/Sub?
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

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