本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
線上遷移計劃的第一個步驟是確保應用程式寫入的任何新資料都儲存在兩個資料庫、您現有的 Cassandra 叢集和 Amazon Keyspaces 中。目標是在兩個資料倉庫中提供一致的檢視。您可以通過將所有新寫入應用於兩個數據庫來做到這一點。若要實作雙重寫入,請考慮下列兩個選項之一。
應用程序雙寫-您可以通過利用現有的 Cassandra 客戶端庫和驅動程序來實現對應用程序代碼進行最小更改的雙重寫入。您可以在現有的應用程式中實作雙重寫入,也可以在架構中建立新層以處理雙重寫入。有關更多信息和客戶案例研究,顯示如何在現有應用程序中實現雙重寫入,請參閱 Cassandra 遷移案例
研究。 實作雙重寫入時,您可以將一個資料庫指定為前置資料庫,另一個資料庫指定為追隨者。這可讓您繼續寫入原始來源或領導者資料庫,而不會讓失敗寫入追隨者,或目的地資料庫中斷應用程式的關鍵路徑。
您可以使用 Amazon 簡單佇列服務將失敗的寫入記錄在無效字母佇列 () DLQ 中,而不是重試失敗的寫入作業。DLQ可讓您分析對追隨者的失敗寫入,並判斷目的地資料庫中處理不成功的原因。
對於更複雜的雙寫實現,您可以遵循 AWS 使用傳奇模式設計一系列本地事務的最佳實踐。傳奇模式確保,如果一個事務失敗,傳奇運行補償事務,以恢復由先前的事務所做的數據庫更改。
使用雙寫入進行線上移轉時,您可以依照傳奇模式設定雙重寫入,以便每次寫入都是本機交易,以確保異質資料庫之間的原子作業。如需使用建議的設計模式來設計分散式應用程式的詳細資訊 AWS 雲端,請參閱雲端設計模式、架構和實作。
訊息層雙重寫入 — 您可以使用現有的簡訊層對 Cassandra 和 Amazon Keyspaces 執行雙重寫入,而不是在應用程式層實作雙重寫入。
若要這麼做,您可以設定訊息平台的額外取用者,以便將寫入傳送至兩個資料存放區。此方法提供簡單的低程式碼策略,使用訊息層在兩個資料庫中建立兩個最終一致的檢視。