Die Gleichzeitigkeitserkennung ist eine verfügbare Funktion in der allgemeinen Pub/Sub-Clientbibliothek. Wenn Sie eine untergeordnete Bibliothek verwenden, können Sie auch eine eigene Nebenläufigkeitserkennung implementieren.
Die Unterstützung der Nebenläufigkeitserkennung hängt von der Programmiersprache der Clientbibliothek ab. Bei Sprachimplementierungen, die parallele Threads unterstützen, wie C++, Go und Java, wählen die Clientbibliotheken die Anzahl der Threads standardmäßig aus.
Diese Auswahl ist für Ihre Anwendung möglicherweise nicht optimal. Wenn Ihre Abonnentenanwendung beispielsweise nicht mit dem Volumen der eingehenden Nachrichten Schritt hält und nicht CPU-gebunden ist, müssen Sie die Anzahl der Threads erhöhen. Bei CPU-intensiven Nachrichtenverarbeitungsvorgängen kann eine Reduzierung der Anzahl der Threads angemessen sein.
Konfigurationen für die Gleichzeitigkeitserkennung
Die Standardwerte für die Variablen zur Nebenläufigkeitserkennung und die Namen der Variablen können sich je nach Clientbibliothek unterscheiden. In der Java-Clientbibliothek sind die Methoden zum Konfigurieren der Nebenläufigkeitserkennung beispielsweise setSystemExecutorProvider()
, setExecutorProvider()
und setParallelPullCount()
.
Mit setParallelPullCount() können Sie festlegen, wie viele Streams geöffnet werden sollen. Du kannst mehr Streams öffnen, wenn dein Abonnentenclient mehr Daten verarbeiten kann, als bei einem einzelnen Stream mit 10 Mbit/s gesendet werden.
Mit setExecutorProvider() können Sie den für die Verarbeitung von Nachrichten verwendeten Executor-Anbieter anpassen. Sie können beispielsweise den Executor-Anbieter in einen Anbieter ändern, der einen einzelnen, gemeinsam genutzten Executor mit einer begrenzten Anzahl von Threads auf mehreren Abonnentenclients zurückgibt. Diese Konfiguration hilft, die Anzahl der erstellten Threads zu begrenzen.
Mit setSystemExecutorProvider() können Sie den Executor-Anbieter anpassen, der für die Lease-Verwaltung verwendet wird. In der Regel konfigurieren Sie diesen Wert nur, wenn Sie denselben Executor-Anbieter in
setExecutorProvider
undsetSystemExecutorProvider
verwenden möchten. Sie können beispielsweise denselben Executor-Anbieter verwenden, wenn Sie mehrere Abos mit niedrigem Durchsatz haben. Die Verwendung desselben Werts begrenzt die Anzahl der Threads im Client.
Die Gesamtzahl der für die Nebenläufigkeitserkennung verwendeten Threads hängt vom Executor-Anbieter ab, der in der Clientbibliothek übergeben wurde, und von der Anzahl der parallelen Pull-Aufrufe.
Codebeispiele für die Nebenläufigkeitserkennung
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.
Einfach loslegen (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 zur 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 zur Pub/Sub Java 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 zur Pub/Sub Ruby API.
Nächste Schritte
Weitere Informationen zu den Zustellungsoptionen, die Sie für ein Abo konfigurieren können:
Nachrichtenfehler mit der Richtlinie für Abowiederholungen behandeln
Nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiterleiten
Zuvor bestätigte Nachrichten noch einmal abspielen oder Nachrichten dauerhaft löschen