Torna alla versione precedente di KCL - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Torna alla versione precedente di KCL

Questo argomento spiega come ripristinare l'applicazione consumer alla versione precedente di KCL. Il processo di roll-back consiste in due fasi:

  1. Esegui lo strumento di migrazione KCL.

  2. Ridistribuisci il codice della versione precedente di KCL.

Passaggio 1: Esegui lo strumento di migrazione KCL

Quando è necessario tornare alla versione precedente di KCL, è necessario eseguire lo strumento di migrazione KCL. Lo strumento svolge due attività importanti:

  • Rimuove una tabella di metadati denominata tabella delle metriche dei lavoratori e indice secondario globale nella tabella di lease in DynamoDB. Questi artefatti sono creati da KCL 3.x ma non sono necessari quando si torna alla versione precedente.

  • Consente a tutti i lavoratori di funzionare in una modalità compatibile con KCL 1.x e di iniziare a utilizzare l'algoritmo di bilanciamento del carico utilizzato nelle versioni precedenti di KCL. Se hai problemi con il nuovo algoritmo di bilanciamento del carico in KCL 3.x, questo ridurrà immediatamente il problema.

Importante

La tabella degli stati del coordinatore in DynamoDB deve esistere e non deve essere eliminata durante il processo di migrazione, rollback e rollforward.

Nota

È importante che tutti i lavoratori dell'applicazione consumer utilizzino lo stesso algoritmo di bilanciamento del carico in un determinato momento. Lo strumento di migrazione KCL assicura che tutti i lavoratori dell'applicazione consumer KCL 3.x passino alla modalità compatibile con KCL 1.x in modo che tutti i lavoratori eseguano lo stesso algoritmo di bilanciamento del carico durante il rollback dell'applicazione alla versione precedente di KCL.

Puoi scaricare lo strumento di migrazione KCL nella directory degli script del repository KCL. GitHub Esegui lo script da un lavoratore o da un host con le autorizzazioni appropriate per scrivere nella tabella di stato del coordinatore, nella tabella delle metriche dei lavoratori e nella tabella di locazione. Assicurati che le autorizzazioni IAM appropriate siano configurate per le applicazioni consumer KCL. Esegui lo script solo una volta per applicazione KCL utilizzando il comando specificato:

python3 ./KclMigrationTool.py --region region --mode rollback [--application_name applicationName] [--lease_table_name leaseTableName] [--coordinator_state_table_name coordinatorStateTableName] [--worker_metrics_table_name workerMetricsTableName]

Parametri

--region

Sostituisci region con il tuo. Regione AWS

--application_name

Questo parametro è obbligatorio se utilizzi nomi predefiniti per le tabelle dei metadati di DynamoDB (lease table, coordinator state table e worker metrics table). Se hai specificato nomi personalizzati per queste tabelle, puoi omettere questo parametro. applicationNameSostituiscilo con il nome effettivo dell'applicazione KCL. Lo strumento utilizza questo nome per derivare i nomi delle tabelle predefiniti se non vengono forniti nomi personalizzati.

--lease_table_name

Questo parametro è necessario quando hai impostato un nome personalizzato per la tabella di leasing nella configurazione KCL. Se stai usando il nome di tabella predefinito, puoi omettere questo parametro. leaseTableNameSostituiscilo con il nome della tabella personalizzata che hai specificato per la tabella di leasing.

--coordinator_state_table_name

Questo parametro è necessario quando hai impostato un nome personalizzato per la tabella degli stati del coordinatore nella configurazione KCL. Se stai usando il nome di tabella predefinito, puoi omettere questo parametro. coordinatorStateTableNameSostituiscilo con il nome di tabella personalizzato che hai specificato per la tabella degli stati del coordinatore.

--worker_metrics_table_name

Questo parametro è necessario quando hai impostato un nome personalizzato per la tabella delle metriche dei lavoratori nella configurazione KCL. Se stai usando il nome di tabella predefinito, puoi omettere questo parametro. workerMetricsTableNameSostituiscilo con il nome della tabella personalizzata che hai specificato per la tabella delle metriche dei lavoratori.

Passaggio 2: ridistribuisci il codice con la versione precedente di KCL

Importante

Qualsiasi menzione della versione 2.x nell'output generato dal KCL Migration Tool deve essere interpretata come riferita alla versione KCL 1.x. L'esecuzione dello script non esegue un rollback completo, ma passa solo l'algoritmo di bilanciamento del carico a quello utilizzato nella versione 1.x di KCL.

Dopo aver eseguito lo strumento di migrazione KCL per un rollback, vedrai uno di questi messaggi:

Messaggio 1

«Rollback completato. L'applicazione eseguiva funzionalità doppie e compatibili. Torna ai file binari dell'applicazione precedente distribuendo il codice con la versione precedente di KCL.»

Azione richiesta: Ciò significa che i tuoi lavoratori erano in esecuzione nella modalità compatibile con KCL 1.x. Ridistribuisci il codice con la versione precedente di KCL ai tuoi lavoratori.

Messaggio 2

«Rollback completato. La tua applicazione KCL eseguiva 3 funzionalità e verrà ripristinata a funzionalità 2 volte compatibili. Se non vedi alcuna mitigazione dopo un breve periodo di tempo, esegui il rollback ai file binari dell'applicazione precedente distribuendo il codice con la versione KCL precedente.»

Azione richiesta: Ciò significa che i tuoi lavoratori lavoravano in modalità KCL 3.x e lo strumento di migrazione KCL ha portato tutti i lavoratori alla modalità compatibile con KCL 1.x. Ridistribuisci il codice con la versione precedente di KCL ai tuoi lavoratori.

Messaggio 3

«L'applicazione è già stata ripristinata. Tutte KCLv3 le risorse che potevano essere eliminate sono state ripulite per evitare addebiti fino a quando non è stato possibile eseguire il rollforward dell'applicazione con la migrazione».

Azione richiesta: Ciò significa che i lavoratori sono già stati ripristinati per essere eseguiti nella modalità compatibile con KCL 1.x. Ridistribuisci il codice con la versione precedente di KCL ai tuoi lavoratori.