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.
Führen Sie einen Rollback zur vorherigen KCL-Version durch
In diesem Thema wird erklärt, wie Sie Ihre Verbraucheranwendung auf die vorherige KCL-Version zurücksetzen können. Der Rollback-Prozess besteht aus zwei Schritten:
-
Führen Sie das KCL-Migrationstool
aus. -
Stellen Sie den Code der vorherigen KCL-Version erneut bereit.
Schritt 1: Führen Sie das KCL-Migrationstool aus
Wenn Sie zur vorherigen KCL-Version zurückkehren müssen, müssen Sie das KCL-Migrationstool ausführen. Das Tool erfüllt zwei wichtige Aufgaben:
-
Es entfernt eine Metadatentabelle namens Worker Metrics Table und den globalen Sekundärindex aus der Leasing-Tabelle in DynamoDB. Diese Artefakte werden von KCL 3.x erstellt, werden aber nicht benötigt, wenn Sie zur vorherigen Version zurückkehren.
-
Dadurch werden alle Worker in einem mit KCL 1.x kompatiblen Modus ausgeführt und beginnen, den Load-Balancing-Algorithmus zu verwenden, der in früheren KCL-Versionen verwendet wurde. Wenn Sie Probleme mit dem neuen Load-Balancing-Algorithmus in KCL 3.x haben, wird das Problem dadurch sofort behoben.
Wichtig
Die Koordinatorstatustabelle in DynamoDB muss vorhanden sein und darf während des Migrations-, Rollback- und Rollforward-Prozesses nicht gelöscht werden.
Anmerkung
Es ist wichtig, dass alle Worker in Ihrer Consumer-Anwendung zu einem bestimmten Zeitpunkt denselben Load-Balancing-Algorithmus verwenden. Das KCL-Migrationstool stellt sicher, dass alle Worker in Ihrer KCL 3.x-Consumer-Anwendung in den KCL 1.x-kompatiblen Modus wechseln, sodass alle Worker während des Anwendungs-Rollbacks zur vorherigen KCL-Version denselben Load-Balancing-Algorithmus ausführen.
Sie können das KCL-Migrationstool im Skriptverzeichnis des KCL-Repositorys
python3 ./KclMigrationTool.py --region
region
--mode rollback [--application_nameapplicationName
] [--lease_table_nameleaseTableName
] [--coordinator_state_table_namecoordinatorStateTableName
] [--worker_metrics_table_nameworkerMetricsTableName
]
Parameter
--region
-
Ersetze es
region
durch dein AWS-Region. --application_name
-
Dieser Parameter ist erforderlich, wenn Sie Standardnamen für Ihre DynamoDB-Metadatentabellen (Leasetabelle, Koordinatorstatustabelle und Worker-Metriktabelle) verwenden. Wenn Sie benutzerdefinierte Namen für diese Tabellen angegeben haben, können Sie diesen Parameter weglassen. Ersetzen Sie ihn
applicationName
durch Ihren tatsächlichen KCL-Anwendungsnamen. Das Tool verwendet diesen Namen, um die Standardtabellennamen abzuleiten, falls keine benutzerdefinierten Namen angegeben werden. --lease_table_name
-
Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Leasetabelle festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen.
leaseTableName
Ersetzen Sie ihn durch den benutzerdefinierten Tabellennamen, den Sie für Ihre Leasingtabelle angegeben haben. --coordinator_state_table_name
-
Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Koordinatorstatustabelle festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen.
coordinatorStateTableName
Ersetzen Sie ihn durch den benutzerdefinierten Tabellennamen, den Sie für Ihre Koordinatorstatustabelle angegeben haben. --worker_metrics_table_name
-
Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Tabelle mit den Worker-Metriken festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen.
workerMetricsTableName
Ersetzen Sie ihn durch den Namen der benutzerdefinierten Tabelle, den Sie für Ihre Tabelle mit Arbeitskennzahlen angegeben haben.
Schritt 2: Stellen Sie den Code erneut mit der vorherigen KCL-Version bereit
Wichtig
Jede Erwähnung von Version 2.x in der vom KCL Migration Tool generierten Ausgabe sollte als Bezugnahme auf KCL-Version 1.x interpretiert werden. Die Ausführung des Skripts führt kein vollständiges Rollback durch, es wird lediglich der Load-Balancing-Algorithmus auf den in KCL Version 1.x verwendeten umgestellt.
Nachdem Sie das KCL-Migrationstool für ein Rollback ausgeführt haben, wird eine der folgenden Meldungen angezeigt:
- Nachricht 1
-
„Rollback abgeschlossen. In Ihrer Anwendung wurden doppelt so viele kompatible Funktionen ausgeführt. Bitte führen Sie ein Rollback zu Ihren vorherigen Anwendungsbinärdateien durch, indem Sie den Code mit Ihrer vorherigen KCL-Version bereitstellen.“
Erforderliche Maßnahme: Dies bedeutet, dass Ihre Mitarbeiter im KCL 1.x-kompatiblen Modus ausgeführt wurden. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.
- Nachricht 2
-
„Rollback abgeschlossen. Ihre KCL-Anwendung hat die dreifache Funktionalität ausgeführt und wird auf die doppelte kompatible Funktionalität zurückgesetzt. Wenn Sie nach kurzer Zeit keine Abhilfemaßnahmen sehen, führen Sie bitte ein Rollback zu Ihren vorherigen Anwendungsbinärdateien durch, indem Sie den Code zusammen mit Ihrer vorherigen KCL-Version bereitstellen.“
Erforderliche Maßnahme: Das bedeutet, dass Ihre Mitarbeiter im KCL 3.x-Modus liefen und das KCL-Migrationstool alle Worker in den KCL 1.x-kompatiblen Modus umgestellt hat. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.
- Nachricht 3
-
„Die Anwendung wurde bereits zurückgesetzt. Alle KCLv3 Ressourcen, die gelöscht werden konnten, wurden bereinigt, um Gebühren zu vermeiden, bis die Anwendung im Rahmen der Migration wiederhergestellt werden kann.“
Erforderliche Maßnahme: Dies bedeutet, dass für Ihre Mitarbeiter bereits ein Rollback durchgeführt wurde, sodass sie im KCL 1.x-kompatiblen Modus ausgeführt werden konnten. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.