Wenn Sie mit Pub/Sub Nachrichten mit vielen Daten veröffentlichen, können Sie gRPC verwenden, um Ihre Daten zu komprimieren und so Netzwerkkosten zu sparen, bevor Ihr Publisher-Client die Veröffentlichungsanfrage sendet. Die Pub/Sub-Komprimierung für gRPC verwendet den Algorithmus Gzip.
In diesem Dokument finden Sie Informationen zum Komprimieren von Nachrichten, die in einem Thema veröffentlicht werden.
Nachrichten komprimieren
Das Komprimierungsverhältnis für die Verwendung der gRPC-clientseitigen Komprimierungsfunktion ist für verschiedene Publisher-Clients unterschiedlich und hängt von den folgenden Faktoren ab:
Datenmenge Das Komprimierungsverhältnis verbessert sich, wenn die Größe der Nutzlast von einigen hundert Bytes auf viele Kilobyte ansteigt. Die Batch-Einstellungen einer Veröffentlichungsanfrage legen fest, wie viele Daten in jeder Veröffentlichungsanfrage enthalten sind. Für optimale Ergebnisse empfehlen wir, die Batch-Einstellungen in Verbindung mit der gRPC-Komprimierung zu aktivieren.
Datentyp Textbasierte Daten wie JSON oder XML lassen sich im Vergleich zu binären Daten wie Bildern besser komprimieren.
Wenn sich dein Publisher-Client in Google Cloud befindet, kannst du den Messwert Gesendete Bytes (instance/network/sent_bytes_count
) verwenden, um den Veröffentlichungsdurchsatz in Byte zu messen. Wenn sich Ihr Publisher-Client in einer anderen Anwendung befindet, müssen Sie die clientspezifischen Tools für die Analyse verwenden.
Das Codebeispiel in diesem Abschnitt zeigt ein Code-Snippet für eine Java-Clientbibliothek, das auch die gRPC-Komprimierung enthält.
Hinweise
Bevor du den Veröffentlichungsworkflow konfigurierst, musst du die folgenden Aufgaben erledigt haben:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub-Publisher (roles/pubsub.publisher
) für das gewünschte Thema zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Komprimieren von Nachrichten benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Sie benötigen zusätzliche Berechtigungen, um Themen und Abos zu erstellen oder zu aktualisieren.
Nachrichten komprimieren
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Nächste Schritte
Informationen zum Konfigurieren erweiterter Veröffentlichungsoptionen finden Sie unter den folgenden Links: