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 workflow 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, sceglie come target un argomento specifico. Il servizio Pub/Sub utilizza questo nome di argomento per instradare il messaggio a tutte le sottoscrizioni collegate all'argomento. Se esistono più sottoscrittori per una sottoscrizione, 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 saperne di più sulle proprietà degli argomenti, consulta Proprietà di un argomento.

Informazioni sull'importazione degli argomenti

Un argomento di importazione consente a Pub/Sub di importare dati in streaming da un'altra origine e di agire come 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,Cloud de Confiance by S3NS fornisce il monitoraggio e la scalabilità della pipeline di importazione.

Senza un argomento di importazione, lo streaming dei dati in Pub/Sub da un'origine 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 in modo 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:

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

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

Ti consigliamo di importare gli argomenti per i dati in streaming. Se stai valutando l'importazione dati in batch in BigQuery anziché l'importazione dati in 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 best-effort in una terza zona aggiuntiva. La replica di Pub/Sub avviene all'interno di una singola regione.

Informazioni sui messaggi

Un messaggio Pub/Sub è costituito dai dati che vengono trasferiti tramite il servizio.

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

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

  • Una chiave di ordinamento: si tratta di un identificatore facoltativo che rappresenta l'entità per cui i messaggi devono essere ordinati. I messaggi con la stessa chiave di ordinamento devono essere recapitati a un sottoscrittore nell'ordine in cui sono stati pubblicati. Una chiave di ordinamento è obbligatoria solo se vuoi che i messaggi vengano recapitati in ordine. Per saperne di più sulle chiavi di ordinamento, consulta Ordina i messaggi.

  • Attributi: si tratta di coppie chiave-valore facoltative che forniscono contesto e informazioni aggiuntivi sul messaggio. Possono essere utilizzati per il routing, il filtraggio o l'arricchimento dei contenuti dei messaggi. Ad esempio, puoi aggiungere attributi come timestamp o ID transazione. Per saperne di più sugli attributi utilizzati nella pubblicazione dei messaggi, consulta Utilizza 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 il 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 dei messaggi 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 sottoscrittore riceve il messaggio, questo include i valori per 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 come segue:

    • Il messaggio viene archiviato per la distribuzione.

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

    • Pub/Sub identifica i sottoscrittori con sottoscrizioni corrispondenti all'argomento del messaggio e recapita una copia del messaggio a ciascuno.

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

Per saperne di più sul sistema Pub/Sub, consulta Panoramica del servizio Pub/Sub.

Per saperne di più 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 società affiliate negli Stati Uniti e/o in altri paesi.