Wenn Sie Pub/Sub zum Veröffentlichen von Nachrichten mit vielen Daten verwenden, können Sie Ihre Daten mit gRPC komprimieren, um Netzwerkkosten zu sparen, bevor Ihr Publisher-Client die Veröffentlichungsanfrage sendet. Die Pub/Sub-Komprimierung für gRPC verwendet den Gzip-Algorithmus.
Dieses Dokument enthält Informationen zum Komprimieren von Nachrichten, die in einem Thema veröffentlicht wurden.
Informationen zum Komprimieren von Nachrichten
Das Komprimierungsverhältnis für die Verwendung der clientseitigen gRPC-Komprimierungsfunktion unterscheidet sich für verschiedene Publisher-Clients und hängt von den folgenden Faktoren ab:
Datenmenge: Das Komprimierungsverhältnis verbessert sich, wenn die Größe der Nutzlast von einigen Hundert Byte auf viele Kilobyte an Daten ansteigt. Die Batcheinstellungen einer Veröffentlichungsanfrage bestimmen die Datenmenge, die in einer Veröffentlichungsanfrage enthalten ist. Wir empfehlen, Batcheinstellungen in Verbindung mit gRPC-Komprimierung zu aktivieren, um optimale Ergebnisse zu erzielen.
Datentyp: Textbasierte Daten wie JSON oder XML lassen sich im Vergleich zu Binärdaten wie Bildern besser komprimieren.
Wenn sich Ihr Publisher-Client in Google Cloud befindet, können Sie mit dem Messwert Gesendete Byte (instance/network/sent_bytes_count
) den Durchsatz der Veröffentlichung in Byte messen. Wenn Ihr Publisher-Client eine andere Anwendung verwendet, müssen Sie die clientspezifischen Tools für die Messung verwenden.
Das Codebeispiel in diesem Abschnitt zeigt ein Code-Snippet der Java-Clientbibliothek, das auch die gRPC-Komprimierung umfasst.
Hinweise
Bevor Sie den Veröffentlichungsworkflow konfigurieren, müssen Sie die folgenden Aufgaben ausgeführt haben:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher
) für das Thema zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Komprimieren von Nachrichten benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie 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 zur Pub/Sub Java API.
Nächste Schritte
Hier erfahren Sie, wie Sie erweiterte Veröffentlichungsoptionen konfigurieren: