Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Rollback zu einer früheren KCL-Version
In diesem Thema werden die Schritte zum Rollback Ihres KCL 3.5.x-Consumer auf die vorherige Version erläutert. Der Rollback-Vorgang hängt davon ab, in welcher Migrationsphase sich Ihre Anwendung gerade befindet.
Wichtig
Das KCL-Migrationstool ist nur erforderlich, wenn ein Rollback von Phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) zu Phase 1 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1) durchgeführt wird. Wenn sich Ihre Anwendung noch in Phase 1 befindet, können Sie zu Ihrer vorherigen KCL-Version zurückkehren, indem Sie Ihren vorherigen Code erneut bereitstellen, ohne das Tool auszuführen.
Führen Sie ein Rollback von Phase 1 zur vorherigen KCL-Version durch
Wenn sich Ihre Anwendung in Phase 1 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1) befindet, können Sie zu Ihrer vorherigen KCL-Version zurückkehren, indem Sie Ihren vorherigen Code erneut bereitstellen. Phase 1 ist abwärtskompatibel mit früheren KCL-Versionen und erstellt keine migrationsspezifischen Einträge in der Leasetabelle. Es wird kein Migrationstool benötigt.
Um ein Rollback von Phase 1 durchzuführen:
-
Stellen Sie den Code mit Ihrer vorherigen KCL-Version erneut für alle Worker bereit.
Gehen Sie von Phase 2 auf Phase 1 zurück
Wenn sich Ihre Anwendung in Phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) befindet, müssen Sie das KCL-Migrationstool verwenden, um zu Phase 1 zurückzukehren. Dies ist ein zweistufiger Prozess:
-
Führen Sie das KCL Migration Tool
aus. -
Stellen Sie den Code mit der Phase-1-Konfiguration erneut bereit (optional).
Wichtig
Sie können zwei Stufen nicht rückgängig machen (von Phase 2 auf Phase 1 und dann auf die vorherige KCL-Version). Das KCL-Migrationstool verarbeitet nur das Rollback von Phase 2 auf Phase 1.
Anmerkung
Das KCL-Migrationstool löscht keine Einträge, die nichts mit Leasing zu tun haben, aus der Leasetabelle. Diese Einträge sind nicht abwärtskompatibel mit früheren KCL-Versionen, weshalb ein zweistufiges Rollback von Phase 2 direkt auf eine frühere KCL-Version nicht möglich ist.
Schritt 1: Ausführen des KCL Migration Tools
Wenn Sie ein Rollback von Phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) zu Phase 1 durchführen müssen, führen Sie das KCL-Migrationstool aus. Das Tool führt die folgenden Aufgaben aus:
-
Es entfernt den globalen sekundären Index (LeaseOwnerToLeaseKeyIndex) aus der Leasetabelle in DynamoDB. Dieser Index wurde von KCL 3.5.x erstellt, wird aber nicht benötigt, wenn Sie zu Phase 1 zurückkehren.
-
Dadurch werden alle Worker in einem mit KCL 2.x kompatiblen Modus ausgeführt und beginnen, den in früheren KCL-Versionen verwendeten Lastausgleichsalgorithmus zu verwenden. Wenn Sie Probleme mit dem neuen Lastausgleichsalgorithmus in KCL 3.5.x haben, wird das Problem dadurch sofort behoben.
Wichtig
Der Eintrag für den Koordinatorstatus (Migration3.0) in der Leasetabelle darf während des Migrations-, Rollback- und Rollforward-Prozesses nicht gelöscht werden.
Anmerkung
Alle Worker in Ihrer Consumer-Anwendung müssen zu einem bestimmten Zeitpunkt denselben Load-Balancing-Algorithmus verwenden. Das KCL-Migrationstool stellt sicher, dass alle Worker in Ihrer KCL 3.5.x-Consumer-Anwendung in den KCL 2.x-kompatiblen Modus wechseln, sodass alle Worker beim Rollback der Bereitstellung zu Phase 1 denselben Load Balancing-Algorithmus ausführen.
Sie können das KCL-Migrationstool im Skriptverzeichnis des
python3 ./KclMigrationTool.py --region <region> --mode rollback [--application_name <applicationName>] [--lease_table_name <leaseTableName>]
Parameter
-
--region: Ersetze
<region>durch deine. AWS-Region -
--application_name: Dieser Parameter ist erforderlich, wenn Sie den Standardnamen für Ihre Leasing-Tabelle verwenden. Wenn Sie einen benutzerdefinierten Namen für die Leasing-Tabelle angegeben haben, können Sie diesen Parameter weglassen. Ersetzen Sie ihn
<applicationName>durch Ihren tatsächlichen KCL-Anwendungsnamen. Das Tool verwendet diesen Namen, um den Standardtabellennamen abzuleiten, falls kein benutzerdefinierter Name angegeben wird. -
--lease_table_name (optional): Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Leasing-Tabelle festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen. Ersetzen Sie ihn
<leaseTableName>durch den benutzerdefinierten Tabellennamen, den Sie für Ihre Leasingtabelle angegeben haben.
Schritt 2: Stellen Sie den Code mit der Phase-1-Konfiguration erneut bereit (optional)
Nachdem Sie das KCL-Migrationstool für ein Rollback von Phase 2 auf Phase 1 ausgeführt haben, wird eine der folgenden Meldungen angezeigt:
-
Meldung 1: „Rollback abgeschlossen. In Ihrer Anwendung wurde die Phase-2-Funktionalität (2-fach kompatibel) ausgeführt. Bitte kehren Sie zu Phase 1 zurück, indem Sie Ihre KCL 3.5.x-Anwendung mit der Phase-1-Konfiguration bereitstellen.“
-
Erforderliche Maßnahme: Ihre Worker liefen im Modus Phase 2 (2x-kompatibel). Stellen Sie Ihre KCL 3.5.x-Anwendung mit der Phase-1-Konfiguration (
CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1) erneut für Ihre Mitarbeiter bereit.
-
-
Meldung 2: „Rollback abgeschlossen. In Ihrer KCL-Anwendung wurde die Funktion Phase 2 (3x) ausgeführt und es wurde ein Rollback in den Phase 2-Modus (2x-kompatibel) durchgeführt. Wenn Sie nach kurzer Zeit keine Abhilfemaßnahmen sehen, kehren Sie bitte zu Phase 1 zurück, indem Sie Ihre KCL 3.5.x-Anwendung mit der Phase-1-Konfiguration bereitstellen.“
-
Erforderliche Maßnahme: Ihre Mitarbeiter wurden im Modus Phase 2 (3x) ausgeführt, und das KCL-Migrationstool hat sie in den Modus Phase 2 (2x-kompatibel) zurückversetzt. Wenn das Problem behoben ist, müssen Sie die Bereitstellung nicht erneut durchführen. Wenn das Problem weiterhin besteht, stellen Sie Ihre KCL 3.5.x-Anwendung mit der Phase-1-Konfiguration () erneut für Ihre Mitarbeiter bereit.
CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1
-