Panoramica di Pubblica messaggio

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, inclusi i concetti 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, lo indirizza a un argomento specifico. Il servizio Pub/Sub utilizza il nome dell'argomento per instradare il messaggio a tutti gli abbonamenti collegati all'argomento. Se esistono più abbonati per un abbonamento, solo uno di questi riceve il messaggio.

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

Pub/Sub supporta due tipi di argomenti: un argomento standard e un argomento 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 dati di streaming da un'altra origine e di fungere da applicazione publisher che invia i dati all'argomento. Puoi attivare l'importazione su 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 lo scaling della pipeline di importazione.

Senza un argomento di importazione, lo streaming di dati in Pub/Sub da un'origine dati richiede un servizio aggiuntivo. Questo servizio aggiuntivo esegue il pull dei 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 personalizzato. Devi anche configurare, eseguire il deployment, eseguire, scalare e monitorare questo servizio.

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

  • Analogamente a un argomento standard, puoi comunque pubblicare manualmente in un argomento di importazione.

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

Consigliamo di utilizzare gli argomenti di importazione per i dati di streaming. Se stai valutando importazione dati batch in BigQuery anziché l'importazione dati di streaming, puoi provare BigQuery Data Transfer Service. Se vuoi importare dati in Cloud Storage, 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 massimo impegno in una terza zona aggiuntiva. La replica Pub/Sub avviene all'interno di una sola regione.

Informazioni sui messaggi

Un messaggio Pub/Sub è il dato che si sposta attraverso il servizio.

Un messaggio è costituito da campi con i dati e i metadati del messaggio. Un messaggio deve contenere dati del messaggio o almeno un attributo.

  • I dati del messaggio: si tratta del contenuto principale del messaggio e possono essere dati di testo o binari. Rappresentano le informazioni effettive che vuoi comunicare tra publisher e abbonati. Se utilizzi direttamente l'API REST, i dati del messaggio devono essere codificati in base64. Consulta l'esempio nella scheda REST nella sezione Pubblica messaggi.

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

  • Attributi: si tratta di coppie chiave-valore facoltative che forniscono contesto e informazioni aggiuntive sul messaggio. Possono essere utilizzati per il routing, il filtraggio o l'arricchimento del contenuto del messaggio. 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 che indica quando il servizio Pub/Sub riceve il messaggio

Quando pubblichi messaggi utilizzando le librerie client Pub/Sub, fornisci i data del messaggio come array di byte, ad esempio un Buffer Node.js. Se i dati sono una stringa, devi prima codificarli in byte, ad esempio utilizzando la codifica UTF-8, prima di passarli alla libreria client.

Se utilizzi direttamente l'API REST, i dati del messaggio devono essere codificati in base64 e inviati come stringa.

L'esempio seguente mostra una rappresentazione JSON di un messaggio inviato da un client:

{
  "data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
  "orderingKey": "12345"
}

Quando un abbonato riceve il messaggio, questo include i valori di messageId e publishTime, aggiunti dal servizio Pub/Sub:

{
  "data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
  "messageId": "19443130675731448",
  "publishTime": "2026-05-04T23:15:19.863Z",
  "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 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 e lo elabora nel seguente modo:

    • Il messaggio viene archiviato per la distribuzione.

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

    • Pub/Sub identifica gli abbonati con abbonamenti che corrispondono all'argomento del messaggio e invia una copia del messaggio a ciascuno di essi.

Pub/Sub offre la consegna dei messaggi "at-least-once" e l'ordinamento con il massimo impegno agli abbonati esistenti.

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

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

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o delle sue affiliate negli Stati Uniti e/o in altri paesi.