Cos'è un sistema Pub/Sub?
Visita systemdesign.us per le domande di intervista sulla progettazione del sistema contrassegnate dalle aziende e dalle loro soluzioni. Seguici su YouTube , LinkedIn , Twitter , Medium .
Il sistema Pub/Sub è un sistema di messaggistica che consente agli utenti di sottoscrivere argomenti specifici e ricevere messaggi solo dagli argomenti a cui sono iscritti. Questo può essere utile per una varietà di applicazioni, come social network, feed di notizie e giochi.
Come funziona pub/sub?
L'editore (o il mittente del messaggio) invia un messaggio a un argomento specifico. Il messaggio viene quindi ricevuto da tutti gli abbonati (o destinatari del messaggio) di quell'argomento. Gli abbonati possono scegliere di annullare l'iscrizione a un argomento in qualsiasi momento.
Componenti Pub/Sub
Ci sono tre componenti principali in un sistema pub/sub:
argomenti : i messaggi sono organizzati in argomenti e gli utenti possono iscriversi a argomenti specifici per ricevere i messaggi.
editori : gli editori sono il mittente del messaggio e inviano messaggi a argomenti specifici.
abbonati : gli abbonati sono i destinatari del messaggio e ricevono tutti i messaggi dagli argomenti a cui sono iscritti.
Perché usare pub/sub?
Pub/sub può essere utile per le applicazioni che richiedono aggiornamenti in tempo reale da una varietà di fonti. Ad esempio, un'app di social network potrebbe dover mostrare agli utenti gli aggiornamenti dei loro amici, nonché notizie e altri contenuti. Utilizzando pub/sub, l'app può ricevere tutti questi messaggi in tempo reale, senza dover eseguire costantemente il polling per nuovi dati.
Quali sono i vantaggi di pub/sub?
Ci sono diversi vantaggi nell'usare pub/sub:
- Aggiornamenti in tempo reale: gli abbonati possono ricevere i messaggi non appena vengono pubblicati, senza dover attendere un intervallo di polling regolare.
- Abbonamenti flessibili: gli abbonati possono scegliere di abbonarsi solo agli argomenti a cui sono interessati e possono annullare l'iscrizione in qualsiasi momento.
- Scalabilità: il sistema pub/sub può essere facilmente ridimensionato per gestire un numero elevato di argomenti e abbonati.
- Consente la comunicazione in tempo reale tra editori e abbonati.
- È un sistema scalabile in grado di gestire un gran numero di argomenti e abbonati.
- È flessibile, poiché gli abbonati possono scegliere da quali argomenti desiderano ricevere messaggi.
Ci sono alcuni potenziali svantaggi nell'usare pub/sub:
- La consegna dei messaggi non è garantita: poiché i messaggi vengono inviati in modo asincrono, non vi è alcuna garanzia che vengano ricevuti da tutti gli abbonati. Ciò significa che alcuni messaggi potrebbero essere persi se l'abbonato è offline o il messaggio è in ritardo per qualche motivo.
- Latenza superiore: il recapito asincrono dei messaggi può comportare una latenza maggiore rispetto al recapito sincrono dei messaggi (ad esempio con un sistema di messaggistica tradizionale).
- Cronologia dei messaggi limitata: la maggior parte dei sistemi pub/sub tiene traccia solo dei messaggi più recenti per ogni argomento, il che significa che gli abbonati riceveranno i nuovi messaggi solo dopo essersi iscritti. Questo può essere un problema per le applicazioni che richiedono una cronologia completa dei messaggi.
- L'editore deve conoscere l'argomento del messaggio per inviarlo ai destinatari corretti.
- Gli abbonati possono ricevere messaggi a cui non sono interessati se si iscrivono a troppi argomenti.
- Non vi è alcuna garanzia che i messaggi vengano consegnati in ordine o del tutto.
Elenco delle tecnologie Pub/Sub
- Apache Kafka
- Servizio di notifica semplice Amazon (SNS)
- Google Cloud Pub/Sub
- Griglia di eventi di Microsoft Azure
- IBM Cloud Pub/Sub
- Server streaming NATS
- Eventi cloud
- MQTT
- STOMP
- Webhook
- Apache ActiveMQ Artemis
- ConiglioMQ

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































