Wenn eine Nachricht an einen Pull-Abonnenten zugestellt wird, muss der Abonnent die Nachricht innerhalb der Bestätigungsfrist verarbeiten und bestätigen (Bestätigung). Andernfalls muss der Abonnent die Frist mit einem Aufruf verlängern, um die Bestätigungsfrist zu ändern.
Die allgemeinen Pub/Sub-Clientbibliotheken bieten die Freigabeverwaltung als Funktion, mit der die Frist für eine Nachricht, die noch nicht bestätigt wurde, automatisch verlängert wird. Standardmäßig können die Clientbibliotheken die Frist auf eine Stunde verlängern, indem sie regelmäßig modifyAckDeadline-Anfragen senden. Die übergeordneten Clientbibliotheken für Python, Go, Java und .Net verwenden das 99. Perzentil der Bestätigungsverzögerung, um die Länge der einzelnen Erweiterungen zu bestimmen.
Mit der Freigabeverwaltung haben Sie im Vergleich zum Konfigurieren der Property auf Aboebene eine bessere Kontrolle über den Bestätigungszeitraum für Nachrichten. Wenn du nur die Bestätigungsfrist auf Aboebene verwendest, musst du die richtige Balance zwischen einem niedrigen und einem hohen Wert finden. Ein niedriger Wert erhöht die Wahrscheinlichkeit von Duplikaten und ein hoher Wert verzögert die erneute Zustellung fehlgeschlagener Nachrichten. Die Ermittlung des richtigen Werts kann schwierig sein, insbesondere wenn die erwartete Verarbeitungszeit für verschiedene Nachrichten stark variiert.
Weitere Informationen zu den Attributen eines Abos, einschließlich der Bestätigungsfrist, findest du unter Aboeigenschaften.
Konfiguration der Freigabeverwaltung
Sie können die folgenden Attribute in den Clientbibliotheken auf übergeordneter Ebene konfigurieren, um die Freigabeverwaltung zu steuern.
Maximale Frist für die Bestätigung. Der maximale Zeitraum, um den Sie die Bestätigungsfrist einer Nachricht mit der Anfrage
modify acknowledgment deadline
verlängern können. Mit dieser Eigenschaft kannst du festlegen, wie lange die Abonnentenclients Nachrichten verarbeiten sollen.Maximale Dauer für jede Bestätigungserweiterung. Der maximale Zeitraum, um den die Bestätigungsfrist für jede der
modify acknowledgment deadline
-Anfragen verlängert werden soll. Mit diesem Attribut können Sie die Zeit definieren, die Pub/Sub benötigt, um eine Nachricht noch einmal zuzustellen. Eine erneute Übermittlung erfolgt, wenn der erste Abonnent, der die Nachricht verarbeitet, abstürzt oder fehlerhaft wird und diemodify acknowledgment deadline
-Anfrage nicht mehr senden kann.Mindestdauer für jede Bestätigungserweiterung. Die Zeitspanne, um die die Bestätigungsfrist für jede der
modify acknowledgment deadline
-Anfragen mindestens verlängert werden soll. Mit dieser Eigenschaft können Sie die Mindestzeit angeben, die vergehen muss, bevor eine Nachricht noch einmal zugestellt wird.
Die Einhaltung von Bestätigungsterminen kann nicht garantiert werden, es sei denn, Sie aktivieren die genau einmalige Zustellung.
Bestätigungsfristen manuell verwalten
Verwenden Sie die modify acknowledgment deadline
-Anfrage, um die Bestätigungsfristen zu verlängern, um den Ablauf und die erneute Zustellung von Nachrichten zu vermeiden, wenn Sie unärer Pull-Abruf oder die Low-Level-Clientbibliotheken verwenden. Ausgenommen hiervon sind die übergeordneten Go- und C++-Clientbibliotheken, die bei Verwendung von unärem Pull-Vorgang eine Freigabeverwaltung ermöglichen. Sehen Sie sich die folgenden Beispiele für unären Pull-Vorgang mit Lease-Verwaltung an:
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 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.
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 zur 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 zur 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 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