Dieses Dokument enthรคlt Informationen zur Verwendung der Ablaufsteuerung mit Nachrichten, die in einem Thema verรถffentlicht werden.
Ablaufsteuerung
Ein Publisher-Client kann versuchen, Nachrichten schneller zu verรถffentlichen, als dieser Client Daten an den Pub/Sub-Dienst senden kann. Clients sind durch viele Faktoren begrenzt, darunter:
- Maschinen-CPU, RAM und Netzwerkkapazitรคt
- Netzwerkeinstellungen, z. B. Anzahl der ausstehenden Anfragen und verfรผgbare Bandbreite
- Die Latenz jeder Verรถffentlichungsanfrage, die hauptsรคchlich durch die Netzwerkverbindungen zwischen dem Pub/Sub-Dienst, dem Client und Google Cloudbestimmt wird
Wenn die Verรถffentlichungsanfragerate diese Limits รผberschreitet, sammeln sich Anfragen im Speicher an, bis sie mit dem Fehler DEADLINE_EXCEEDED
fehlschlagen. Dies ist besonders wahrscheinlich, wenn Zehntausende von Nachrichten in einer Schleife verรถffentlicht werden und dadurch Tausende von Anfragen in Millisekunden generiert werden.
Sie kรถnnen dieses Problem mithilfe der serverseitigen Messwerte in Monitoring diagnostizieren. Sie kรถnnen die Anfragen, die mit DEADLINE_EXCEEDED
fehlgeschlagen sind, nicht sehen, sondern nur die erfolgreichen Anfragen. Die Rate erfolgreicher Anfragen gibt die Durchsatzkapazitรคt Ihrer Clientmaschinen an und bietet eine Grundlage fรผr die Konfiguration der Ablaufsteuerung.
Wenn Sie die Probleme mit der Ablaufrate minimieren mรถchten, konfigurieren Sie Ihren Publisher-Client mit Ablaufsteuerung, um die Rate der Verรถffentlichungsanfragen zu begrenzen. Sie kรถnnen die maximale Anzahl der Bytes konfigurieren, die fรผr ausstehende Anfragen zugewiesen sind, und die maximale Anzahl zulรคssiger ausstehender Nachrichten. Legen Sie diese Limits entsprechend der Durchsatzkapazitรคt Ihrer Clientmaschinen fest.
Hinweise
Bevor Sie den Verรถffentlichungs-Workflow konfigurieren, mรผssen Sie die folgenden Aufgaben ausfรผhren:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher
) fรผr Ihr Thema zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie fรผr die Verwendung der Flusssteuerung 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.
Ablaufsteuerung mit Nachrichten verwenden
Die Publisher-Ablaufsteuerung ist รผber die Pub/Sub-Clientbibliotheken in den folgenden Sprachen verfรผgbar:
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.
Go
Im folgenden Beispiel wird die Hauptversion der Go Pub/Sub-Clientbibliothek (v2) verwendet. Wenn Sie noch die v1-Bibliothek verwenden, finden Sie hier den Migrationsleitfaden fรผr v2. Eine Liste der Codebeispiele fรผr Version 1 finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung fรผr Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go 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.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung fรผr PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung fรผr PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung fรผr Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Im folgenden Beispiel wird die Ruby-Pub/Sub-Clientbibliothek v3 verwendet. Wenn Sie noch die v2-Bibliothek verwenden, finden Sie hier die Migrationsanleitung fรผr v3. Eine Liste der Ruby v2-Codebeispiele finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung fรผr Ruby im Schnellstart: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.