Che cosa sono Pub/Sub e Pub/Sub Lite?

Questa pagina ti aiuta a capire Pub/Sub, perché le aziende richiedono Pub/Sub e vantaggi di Pub/Sub rispetto a tecnologie simili. Inoltre, scopri di più sui modelli Concetti Pub/Sub che includono i termini argomento, publisher e sottoscrittore.

Pub/Sub è un servizio di messaggistica asincrono e scalabile che disaccoppia che producono messaggi da servizi che li elaborano.

Pub/Sub consente ai servizi di comunicare in modo asincrono, di latenza nell'ordine dei 100 ms.

Pub/Sub viene utilizzato per l'analisi dei flussi di dati e l'integrazione dei dati per importare e distribuire i dati. È altrettanto efficace middleware orientato alla messaggistica per l'integrazione dei servizi o come coda per caricare in contemporanea le attività.

Pub/Sub consente di creare sistemi di producer di eventi consumatori, chiamati editori e abbonati. I publisher comunicano con i sottoscrittori in modo asincrono trasmettendo eventi, anziché RPC (remote procedure remote sincrone).

I publisher inviano eventi al servizio Pub/Sub, senza tenere conto come e quando questi eventi devono essere elaborati. Pub/Sub quindi fornisce eventi a tutti i servizi che reagiscono ad essi. Nei sistemi, che comunicano tramite RPC, i publisher devono attendere che i sottoscrittori ricevano i dati. Tuttavia, l'integrazione asincrona in Pub/Sub aumenta la flessibilità e robustezza del sistema nel suo complesso.

Per iniziare a utilizzare Pub/Sub, consulta Guida rapida all'utilizzo della console Google Cloud. Per un'introduzione più completa, vedi Creazione di un sistema di messaggistica Pub/Sub.

Casi d'uso comuni

  • Interazione degli utenti di importazione ed eventi del server. Per utilizzare l'utente eventi di interazione da app utente finale o eventi server del tuo sistema, potresti e inoltrarle a Pub/Sub. Puoi quindi utilizzare un'elaborazione dei flussi come Dataflow, che invia gli eventi ai database. Esempi di questi database sono BigQuery, Bigtable di archiviazione ideale in Cloud Storage. Pub/Sub consente di raccogliere eventi da molti contemporaneamente.

  • Distribuzione degli eventi in tempo reale. Possono essere creati eventi non elaborati o elaborati disponibili per più applicazioni nel tuo team e nella tua organizzazione per nell'elaborazione del tempo. Pub/Sub supporta un "bus di eventi aziendali" e di progettazione delle applicazioni basati su eventi. Pub/Sub ti consente si integrano con molti sistemi Google che esportano eventi in Pub/Sub.

  • Replica dei dati tra i database. Pub/Sub è comunemente usato per distribuire gli eventi di modifica dai database. Questi eventi possono essere utilizzati creare una visualizzazione dello stato e della cronologia degli stati del database BigQuery e altri sistemi di archiviazione dati.

  • Elaborazione e flussi di lavoro paralleli. Puoi distribuire in modo efficiente molti tra più worker utilizzando i messaggi Pub/Sub. per la connessione a Cloud Functions. Esempi di queste attività sono la compressione del testo di file, invio di notifiche via email, valutazione di modelli di AI e riformattazione in formato Docker.

  • Autobus per eventi aziendali. Puoi creare dati in tempo reale a livello aziendale condividere autobus, distribuire eventi aziendali, aggiornamenti dei database e analisi eventi in tutta l'organizzazione.

  • Flusso di dati da applicazioni, servizi o dispositivi IoT. Ad esempio, un L'applicazione SaaS può pubblicare un feed di eventi in tempo reale. Oppure un sensore per edifici possono inviare dati in modalità flusso a Pub/Sub per utilizzarli in altri prodotti Google Cloud attraverso una pipeline Dataflow.

  • Aggiorna le cache distribuite. Ad esempio, un'applicazione può pubblicare eventi di invalidazione per aggiornare gli ID degli oggetti che sono stati modificati.

  • Bilanciamento del carico per l'affidabilità. Ad esempio, le istanze di un servizio di cui è stato eseguito il deployment su Compute Engine in più zone, ma che si abbonano a un argomento comune. In caso di errore del servizio in una zona, gli altri possono prendere il carico. automaticamente.

Tipi di servizi Pub/Sub

Pub/Sub è costituito da due servizi:

  • Servizio Pub/Sub. Questo servizio di messaggistica è l'impostazione predefinita per la maggior parte degli utenti e delle applicazioni. Offre i massimi livelli di affidabilità più ampio insieme di integrazioni, oltre alla gestione automatica della capacità. Pub/Sub garantisce la replica sincrona di tutti i dati almeno due zone e replica con il criterio del "best effort" in una terza zona aggiuntiva.

  • Servizio Pub/Sub Lite. Un messaggio separato ma simile a un costo inferiore. Offre un'affidabilità minore rispetto in Pub/Sub. Offre l'archiviazione per argomenti a livello di zona o di regione. Gli argomenti Lite a livello di zona vengono archiviati in una zona di destinazione. Gli argomenti Lite a livello di regione replicano i dati in un secondo in modo asincrono. Inoltre, Pub/Sub Lite richiede il pre-provisioning e la gestione della capacità di archiviazione e velocità effettiva. Prendi in considerazione Pub/Sub Lite solo per le applicazioni in cui costi ridotti giustificano alcune attività operative aggiuntive e l'affidabilità.

Per ulteriori dettagli sulle differenze tra Pub/Sub e per Pub/Sub Lite, consulta Scegliere Pub/Sub o Pub/Sub Lite.

Confronto tra Pub/Sub e altre tecnologie di messaggistica

Pub/Sub combina la scalabilità orizzontale Apache Kafka e Pulsar con presenti nel middleware di messaggistica tradizionale, come Apache ActiveMQ e RabbitMQ. Esempi di tali funzionalità sono le code di messaggi non recapitabili e i filtri.

Un'altra funzionalità che Pub/Sub adotta dal middleware di messaggistica è parallelismo per messaggio, anziché messaggistica basata sulle partizioni. "Lease" di Pub/Sub singoli messaggi ai client sottoscrittori, tiene traccia dell'esito dell'elaborazione di un determinato messaggio.

Al contrario, altri sistemi di messaggistica scalabili orizzontalmente e usare le partizioni per la scalabilità orizzontale. Questo obbliga gli iscritti per elaborare i messaggi in ogni partizione in ordine e limita il numero di al numero di partizioni. Elaborazione per messaggio massimizza il parallelismo delle applicazioni degli abbonati e contribuisce a garantire indipendenza publisher/sottoscrittori.

Confrontare la comunicazione tra servizi e tra servizi

Pub/Sub è destinato alla comunicazione tra servizi rispetto alla comunicazione con gli utenti finali o client IoT. Altri pattern sono supportato meglio da altri prodotti:

Puoi utilizzare una combinazione di questi servizi per creare il client -> servizi -> database pattern. Ad esempio, guarda il tutorial Flusso di messaggi Pub/Sub su WebSocket.

Integrazioni

Pub/Sub ha molte integrazioni con altri prodotti Google Cloud per creare un ambiente sistema di messaggistica in primo piano:

  • Elaborazione dei flussi e integrazione dei dati. Supportato da Dataflow, inclusi i modelli Dataflow e SQL, che consentono l'elaborazione e integrazione dei dati in BigQuery e nei data lake su Cloud Storage. Dataflow per spostare dati da Pub/Sub a Cloud Storage, BigQuery e altri prodotti sono disponibili in le UI di Pub/Sub e Dataflow nella console Google Cloud. È disponibile anche l'integrazione con Apache Spark, in particolare se gestita con Dataproc. Composizione visiva dell'integrazione le pipeline di elaborazione in esecuzione su Spark + Dataproc possono essere eseguite con Data Fusion.
  • Monitoraggio, avvisi e logging. Supportato da Monitoring e Logging dei prodotti.
  • Autenticazione e IAM. Pub/Sub si basa su un protocollo OAuth standard utilizzata da altri prodotti Google Cloud e supporta IAM granulari, abilitare il controllo dell'accesso per le singole risorse.
  • API. Pub/Sub utilizza gRPC e l'API di servizio REST standard tecnologie e librerie client per diversi linguaggi.
  • Attivatori, notifiche e webhook. Pub/Sub offre soluzioni basate su push la consegna di messaggi come richieste POST HTTP ai webhook. Puoi implementare l'automazione del flusso di lavoro utilizzando Cloud Functions o altri prodotti serverless.
  • Orchestrazione. Pub/Sub può essere integrato in un ambiente serverless in più fasi Flussi di lavoro dichiarativamente. L'orchestrazione dei big data e delle analisi spesso viene eseguita con Cloud Composer, che supporta i trigger Pub/Sub. Puoi anche integrare Pub/Sub Integrazione di applicazioni (Anteprima), che è una soluzione Integration-Platform-as-a-Service (iPaaS). Applicazione L'integrazione fornisce Trigger Pub/Sub per attivare o avviare le integrazioni.
  • Integration Connectors (Connettori di integrazione) (anteprima) Questi connettori ti consentono di connetterti a varie origini dati. Con i connettori, sono esposti sia i servizi Google Cloud che le applicazioni aziendali di terze parti alle integrazioni tramite un'interfaccia standard e trasparente. Per Pub/Sub, puoi creare una connessione Pub/Sub. per utilizzarlo nelle tue integrazioni.

Concetti principali

  • Argomento. Una risorsa con nome a cui i publisher vengono inviati i messaggi.
  • Abbonamento. Una risorsa denominata che rappresenta il flusso di messaggi da un singolo argomento specifico da distribuire all'applicazione di sottoscrizione. Per ulteriori dettagli sulle sottoscrizioni e sulla semantica della consegna dei messaggi, vedi il Guida per gli iscritti.
  • Messaggio. La combinazione di dati e attributi (facoltativi) che un l'editore invia a un argomento e alla fine viene consegnato ai sottoscrittori.
  • Attributo del messaggio. Una coppia chiave-valore che un publisher può definire per un per creare un nuovo messaggio email. Ad esempio, la chiave iana.org/language_tag e il valore en potrebbero essere ai messaggi per contrassegnarli come leggibili da un sottoscrittore che parla inglese.
  • Editore. Un'applicazione che crea e invia messaggi a uno o più argomenti.
  • Iscritto. Un'applicazione con una sottoscrizione a uno o più argomenti per riceverne i messaggi.
  • Conferma (o "ack"). Un indicatore inviato da un sottoscrittore a Pub/Sub dopo aver ha ricevuto un messaggio. I messaggi confermati vengono rimossi dalla coda dei messaggi di sottoscrizione.
  • Spingi e tira. I due metodi di consegna dei messaggi. Un abbonato riceve tramite Pub/Sub tramite push al sottoscrittore scelto o dal sottoscrittore che li estrae dal servizio.

Le relazioni tra publisher e iscritti possono essere one-to-many (fan-out), many-to-one (fan-in) e molti-a-molti, come illustrato nel seguente diagramma:

Relazioni publisher-iscritti

Il seguente diagramma illustra il passaggio di un messaggio da un publisher a un sottoscrittore. Per la consegna push, l'accettazione è implicita nella risposta a per la richiesta push, mentre per la consegna pull richiede una RPC separata.

Ciclo di vita dei messaggi

Passaggi successivi