Datenpipelines erleben manchmal Spitzen im veröffentlichten Traffic. Die Zugriffsspitzen Abonnenten überfordern, wenn ihr nicht darauf vorbereitet seid. Eine einfache Lösung zur Vermeidung von Traffic-Spitzen besteht darin, Pub/Sub-Abonnentenressourcen dynamisch zu erhöhen, um mehr Nachrichten zu verarbeiten. Diese Lösung kann jedoch die Kosten in die Höhe treiben sofort funktionieren. Beispielsweise benötigen Sie möglicherweise viele VMs.
Mit der Ablaufsteuerung auf der Abonnentenseite kann der Abonnent die Rate auf welche Nachrichten aufgenommen werden. Die Ablaufsteuerung bewältigt somit Traffic-Spitzen ohne oder bis die Abonnentenzahl vergrößert wird.
Die Ablaufsteuerung ist eine verfügbare Funktion in Pub/Sub, allgemeine Clientbibliothek verwendet. Sie können auch Ihre eigene Ablaufsteuerung implementieren, wenn Sie ein Low-Level-Clientbibliothek.
Die Notwendigkeit einer Ablaufsteuerung weist darauf hin, dass Nachrichten an einer bestimmten als sie konsumiert werden. Wenn es sich um ein dauerhaftes Statt eines vorübergehenden Anstiegs des Nachrichtenvolumens sollten Sie eine Erhöhung Anzahl der Abonnenten-Clientinstanzen.
Konfiguration der Ablaufsteuerung
Mit der Ablaufsteuerung können Sie die maximale Anzahl von Bytes konfigurieren, ausstehende Anfragen und die maximal zulässige Anzahl ausstehender Nachrichten. Legen Sie diese Limits entsprechend der Durchsatzkapazität Ihrer Clientmaschinen fest.
Die Standardwerte für die Ablaufsteuerungsvariablen und die Namen der können sich die Variablen je nach Clientbibliothek unterscheiden. Beispiel: In der Java-Clientbibliothek konfigurieren die folgenden Variablen die Ablaufsteuerung:
setMaxOutstandingElementCount(). Definiert die maximale Anzahl von Nachrichten. für die Pub/Sub keine Bestätigungen oder negativen Ergebnisse Danksagung an.
setMaxOutstandingRequestBytes(). Definiert die maximale Größe von Nachrichten. für die Pub/Sub keine Bestätigungen oder negativen Ergebnisse Danksagung an.
Wenn das Limit für setMaxOutstandingElementCount()
oder
setMaxOutstandingRequestBytes()
wurde überschritten, der Abonnentenclient
ruft keine weiteren Nachrichten ab. Dieses Verhalten bleibt bestehen, bis die Meldungen
die bereits abgerufen wurden, werden bestätigt oder negativ bestätigt.
So können wir den Durchsatz an die Kosten anpassen,
mehr Abonnenten gewinnen.
Codebeispiele für Ablaufsteuerung
Um die Rate zu steuern, mit der der Abonnentenclient Nachrichten empfängt, verwenden Sie die Methode Ablaufsteuerungsfunktionen des Abonnenten. Diese Ablaufsteuerungsfunktionen sind wie in den folgenden Beispielen veranschaulicht:
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.
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
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
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Nächste Schritte
Weitere Informationen zu den Zustellungsoptionen, die Sie für ein Abo konfigurieren können:
Nachrichtenfehler mit der Wiederholungsrichtlinie für Abos verarbeiten
Nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiterleiten
Zuvor bestätigte Nachrichten noch einmal abspielen oder Nachrichten dauerhaft löschen