Panoramica della pubblicazione dei messaggi

Per pubblicare un messaggio con Pub/Sub, un'applicazione publisher crea e invia messaggi a un argomento.

Questo documento fornisce una panoramica del flusso di lavoro di pubblicazione, incluso il concetto di argomenti e messaggi.

Informazioni sugli argomenti

Un argomento Pub/Sub è una risorsa denominata che rappresenta un feed di messaggi. Quando un publisher invia un messaggio, ne sceglie come target un argomento specifico. Il servizio Pub/Sub utilizza questo nome di argomento per instradare il messaggio a tutte le iscrizioni associate all'argomento. Se sono presenti più sottoscrittori per un abbonamento, il messaggio viene ricevuto solo da un sottoscrittore.

I publisher non devono sapere quanti iscritti esistono. Si concentrano sull'argomento, garantendo la separazione dei problemi tra l'invio e la ricezione dei messaggi.

Pub/Sub supporta due tipi di argomenti: uno standard e uno di importazione.

Proprietà di un argomento

Quando crei o aggiorni un argomento, puoi specificarne le proprietà.

Per ulteriori informazioni sulle proprietà degli argomenti, consulta Proprietà di un argomento.

Informazioni sugli argomenti di importazione

Un argomento di importazione consente a Pub/Sub di importare i dati in streaming da un'altra origine e di fungere da applicazione publisher che invia i dati all'argomento. Puoi attivare l'importazione per un argomento utilizzando la console, Google Cloud CLI, le chiamate REST o le librerie client. Nell'ambito della gestione dell'argomento di importazione, Google Cloud fornisce il monitoraggio e il ridimensionamento della pipeline di importazione.

Senza un argomento di importazione, lo streaming di dati in Pub/Sub da una fonte di dati richiede un servizio aggiuntivo. Questo servizio aggiuntivo estrae i dati dall'origine originale e li pubblica in Pub/Sub. Il servizio aggiuntivo può essere un motore di streaming come Apache Spark o un servizio scritto su misura. Devi anche configurare, eseguire il deployment, eseguire, scalare e monitorare questo servizio.

Di seguito è riportato un elenco di informazioni importanti sugli argomenti di importazione:

  • Come per un argomento standard, puoi comunque pubblicare manualmente in un argomento di importazione.

  • Puoi allegare una sola origine di importazione a un argomento di importazione.

Consigliamo di importare gli argomenti per i dati in streaming. Se stai valutando la possibilità di eseguire l'importazione batch dei dati in BigQuery anziché l'importazione dati in streaming, puoi provare BigQuery Data Transfer Service (BQ DTS). Se vuoi importare dati in Cloud Storage, il servizio Storage Transfer Service (STS) è una buona opzione.

Pub/Sub supporta le seguenti origini per gli argomenti di importazione:

Replica dei dati in un argomento

Un argomento Pub/Sub utilizza tre zone per archiviare i dati. Il servizio supporta la replica sincrona in almeno due zone e la replica con il criterio del massimo impegno in un'ulteriore terza zona. La replica di Pub/Sub avviene solo in una regione.

Informazioni sui messaggi

Un messaggio Pub/Sub è costituito dai dati che si spostano all'interno del servizio.

Un messaggio è costituito da campi con i dati e i metadati del messaggio. In un messaggio deve essere specificato uno dei seguenti elementi.

  • Dati del messaggio: si tratta dei contenuti principali del messaggio e possono essere qualsiasi testo o dati binari. Rappresenta le informazioni effettive che vuoi comunicare tra publisher e sottoscrittori. Se utilizzi direttamente l'API REST, i dati del messaggio devono essere codificati in base64. Consulta l'esempio nella scheda REST della sezione Pubblica messaggi.

  • Una chiave di ordinamento: si tratta di un identificativo che rappresenta l'entità per la quale devono essere ordinati i messaggi. I messaggi con la stessa chiave di ordinamento devono essere consegnati a un abbonato nell'ordine in cui sono stati pubblicati. Una chiave di ordinamento è obbligatoria solo se vuoi che i messaggi vengano inviati in ordine. Per ulteriori informazioni sulle chiavi di ordinamento, consulta Ordine messaggio.

  • Attributi: si tratta di coppie chiave/valore facoltative che forniscono contesto e informazioni aggiuntive sul messaggio. Possono essere utilizzati per il routing, la filtrazione o l'arricchimento dei contenuti dei messaggi. Ad esempio, puoi aggiungere attributi come timestamp o ID transazione. Per ulteriori informazioni sugli attributi utilizzati per la pubblicazione dei messaggi, consulta Utilizzare gli attributi per pubblicare un messaggio.

Il servizio Pub/Sub aggiunge i seguenti campi al messaggio:

  • Un ID messaggio univoco per l'argomento
  • Un timestamp del momento in cui il servizio Pub/Sub riceve il messaggio

Ad esempio, ecco un formato di messaggio in JSON:

{
  "data": "This is the core message content.",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
    "orderingKey": "12345"
}

Flusso di lavoro di pubblicazione dei messaggi

Per pubblicare un messaggio con Pub/Sub, un'applicazione publisher crea e invia messaggi a un argomento.

  1. Crea un messaggio contenente i tuoi dati.
  2. Seleziona gli eventuali attributi di pubblicazione facoltativi.
  3. Invia una richiesta al server Pub/Sub per pubblicare il messaggio in un argomento specificato.
  4. Il servizio Pub/Sub riceve il messaggio ed esegue l'elaborazione come segue:

    • Il messaggio viene archiviato per la distribuzione.

    • Il messaggio viene replicato in più zone per garantire durabilità e alta disponibilità.

    • Pub/Sub identifica gli abbonati con sottoscrizioni corrispondenti all'argomento del messaggio e consegna una copia del messaggio a ciascuno.

Pub/Sub offre la consegna dei messaggi "at-least-once" e l'ordinamento best effort ai sottoscrittori esistenti.

Per ulteriori informazioni sul sistema Pub/Sub, consulta Panoramica del servizio Pub/Sub.

Per ulteriori informazioni sul funzionamento di Pub/Sub, consulta la Panoramica dell'architettura di Pub/Sub.

Passaggi successivi