Se utilizzi Pub/Sub per pubblicare messaggi che rappresentano una grande quantità di dati, puoi utilizzare gRPC per comprimere i dati e ridurre i costi di rete prima che il client publisher invii la richiesta di pubblicazione. La compressione Pub/Sub per gRPC utilizza l' algoritmo Gzip.
Questo documento fornisce informazioni sulla compressione dei messaggi pubblicati in un argomento.
Informazioni sulla compressione dei messaggi
Il rapporto di compressione per l'utilizzo della funzionalità di compressione lato client gRPC è diverso per i vari client publisher e dipende dai seguenti fattori:
Quantità di dati. Il rapporto di compressione migliora quando la dimensione del payload aumenta da poche centinaia di byte a molti kilobyte di dati. Le impostazioni batch di una richiesta di pubblicazione determinano la quantità di dati inclusi in ogni richiesta di pubblicazione. Per ottenere risultati ottimali, ti consigliamo di attivare le impostazioni batch insieme alla compressione gRPC.
Tipo di dati. I dati basati su testo, come JSON o XML, sono più comprimibili rispetto ai dati binari, come le immagini.
Se il client publisher è attivo Google Cloud, puoi utilizzare
la metrica Byte inviati (instance/network/sent_bytes_count)
per misurare la velocità effettiva di pubblicazione in byte. Se il client publisher si trova su un'applicazione diversa, devi utilizzare gli strumenti specifici del client per eseguire la misurazione.
L'esempio di codice in questa sezione mostra un esempio di snippet di codice della libreria client Java che include anche la compressione gRPC.
Prima di iniziare
Prima di configurare il flusso di lavoro di pubblicazione, assicurati di aver completato le seguenti attività:
- Scopri di più sugli argomenti e sul flusso di lavoro di pubblicazione.
- Crea un argomento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per comprimere i messaggi, chiedi all'amministratore di concederti il ruolo IAM Pub/Sub Publisher (roles/pubsub.publisher) nell'argomento.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per creare o aggiornare argomenti e abbonamenti, sono necessarie autorizzazioni aggiuntive.
Comprimere un messaggio
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C++ .
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Java.
Passaggi successivi
Per scoprire come configurare le opzioni di pubblicazione avanzate, consulta quanto segue: