Se utilizzi Pub/Sub per pubblicare messaggi che contengono una grande quantità di dati, puoi utilizzare gRPC per comprimere i dati e risparmiare sui costi di networking prima che il client del 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 varia a seconda dei client dei publisher e dipende dai seguenti fattori:
Quantità di dati. Il rapporto di compressione migliora quando la dimensione del payload aumenta da alcune centinaia di byte a molti kilobyte di dati. Le impostazioni batch di una richiesta di pubblicazione stabiliscono la quantità di dati inclusa in ogni richiesta di pubblicazione. Ti consigliamo di attivare le impostazioni batch in compressione con la compressione gRPC per ottenere risultati ottimali.
Tipo di dati. I dati basati su testo come JSON o XML sono più comprimibili rispetto a dati binari come le immagini.
Se il client editore si trova su Google Cloud, puoi utilizzare la metrica Byte inviati (instance/network/sent_bytes_count
) per misurare la velocità effettiva di pubblicazione in byte. Se il cliente del publisher utilizza un'applicazione diversa, devi utilizzare gli strumenti specifici del client per effettuare la misurazione.
L'esempio di codice in questa sezione mostra uno snippet di codice della libreria client Java di esempio 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
Publisher Pub/Sub (roles/pubsub.publisher
) per l'argomento.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Devi disporre di autorizzazioni aggiuntive per creare o aggiornare argomenti e sottoscrizioni.
Comprimi un messaggio
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ riportate nella Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ Pub/Sub.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Passaggi successivi
Per scoprire come configurare le opzioni di pubblicazione avanzate, vedi quanto segue: