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, lo indirizza a un argomento specifico. Il servizio Pub/Sub utilizza questo nome dell'argomento per instradare il messaggio a tutte le sottoscrizioni collegate all'argomento. Se ci sono più sottoscrittori per un'iscrizione, solo uno di loro riceve il messaggio.

I publisher non devono sapere quanti iscritti 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à dell'argomento, 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 funge da applicazione publisher che invia i dati all'argomento. Puoi attivare l'importazione su un argomento utilizzando la console, Google Cloud CLI, chiamate REST o le librerie client. Nell'ambito della gestione dell'argomento di importazione, Trusted Cloud by S3NS fornisce il monitoraggio e lo scaling 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 personalizzato. Devi anche configurare, eseguire il deployment, eseguire, scalare e monitorare questo servizio.

Di seguito è riportato un elenco di informazioni importanti relative agli 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.

Consigliamo di importare argomenti per i dati di streaming. Se stai valutando l'importazione batch di dati in BigQuery anziché l'importazione dati in streaming, puoi provare BigQuery Data Transfer Service. Se vuoi importare dati in Cloud Storage, il servizio di trasferimento di archiviazione (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 Pub/Sub avviene in una sola regione.

Informazioni sui messaggi

Un messaggio Pub/Sub sono i dati che si spostano attraverso il servizio.

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

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

  • Una chiave di ordinamento: si tratta di un identificatore 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 è necessaria solo se vuoi che i messaggi vengano inviati in ordine. Per saperne di più sull'ordinamento delle chiavi, consulta Messaggio di ordine.

  • Attributi: si tratta di coppie chiave-valore facoltative che forniscono ulteriori contesto e informazioni sul messaggio. Possono essere utilizzati per il routing, il filtraggio o l'arricchimento dei contenuti del messaggio. Ad esempio, puoi aggiungere attributi come timestamp o ID transazione. Per saperne di più sugli attributi utilizzati per la pubblicazione dei messaggi, vedi 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 di ricezione del messaggio da parte del servizio Pub/Sub

Ad esempio, ecco un formato del messaggio in JSON:

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

Quando pubblichi messaggi utilizzando le librerie client Pub/Sub, fornisci il messaggio data 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.

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 disponibilità.

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

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

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

Per saperne di più sul funzionamento di Pub/Sub, consulta la 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.