本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 MirrorMaker 將內部部署 Apache Kafka 叢集遷移至 Amazon MSK
由 Han Zhang (AWS) 和 Tanner Pratt (AWS) 建立
Summary
此模式提供將內部部署、自我管理或託管 Apache Kafka 叢集遷移至 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 的指引。您也可以使用此模式從一個 Amazon MSK 叢集遷移到另一個叢集。
Apache Kafka 包含 MirrorMaker 功能,可在兩個 Kafka 叢集之間複寫資料。MirrorMaker 由一組消費者組成,這些是消費者群組的一部分。消費者從來源叢集中的主題讀取資料,然後將此資料傳遞給生產者,生產者會將資料寫入目標叢集。
Amazon MSK 文件包含使用 MirrorMaker 1.0 版將內部部署 Kafka 叢集遷移至 Amazon MSK 的程序的高階概觀。此模式提供使用 MirrorMaker 2.0 版的完整step-by-step說明,以補充此資訊。
先決條件和限制
先決條件
作用中的 AWS 帳戶
下列其中一項的 Kafka 來源叢集:
在內部部署資料中心
在雲端中自我管理
透過合作夥伴託管
限制
若要使用 MirrorMaker 2.0 版,來源叢集必須操作 Apache Kafka 2.4.0 版或更新版本。如需舊版,請參閱 Amazon MSK 文件中的說明,以使用 MirrorMaker 1.0 版。
產品版本
MirrorMaker 2.0 版
Apache Kafka 2.4.0 版或更新版本。如需 Amazon MSK 支援的 Apache Kafka 版本的詳細資訊,請參閱支援的 Apache Kafka 版本。
架構
來源技術堆疊
內部部署或自我管理的 Kafka 叢集
目標技術堆疊
Amazon MSK 叢集
目標架構

圖表顯示下列程序:
MirrorMaker 會從來源 Kafka 叢集中的主題和取用者群組讀取資料。
MirrorMaker 會將資料和消費者資訊複寫到目標 Amazon MSK 叢集。
工具
AWS 服務
Amazon Elastic Compute Cloud (Amazon EC2) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器,,並快速進行擴展或縮減。
Amazon Managed Streaming for Apache Kafka (Amazon MSK) 是一項全受管服務,可協助您建置和執行使用 Apache Kafka 處理串流資料的應用程式。
Amazon Virtual Private Cloud (Amazon VPC) 可協助您在已定義的虛擬網路中啟動 AWS 資源。這個虛擬網路類似於您在自己的資料中心內操作的傳統網路,具有使用可擴展的 AWS 基礎設施的優勢。
其他工具
Apache Kafka
是開放原始碼事件串流平台。在此模式中,您可以使用 Kafka 的 MirrorMaker 功能來執行跨叢集遷移。
最佳實務
您可以在來源或目標環境中於 上執行 MirrorMaker,但建議您盡可能在目標叢集附近執行它。如需詳細資訊,請參閱 Apache Kafka 文件中的最佳實務:從遠端使用、生產到本機
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立 VPC。 |
| AWS 系統管理員、DevOps 工程師、雲端管理員 |
建立 Amazon MSK 叢集。 | 建立 Amazon MSK 叢集。如需說明,請參閱使用 AWS 管理主控台建立叢集或使用 AWS CLI 建立叢集。設定叢集以使用您先前建立的 VPC 和子網路。 | AWS 系統管理員、DevOps 工程師、雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
安裝 MirrorMaker。 |
注意在此模式中,您會將 MirrorMaker2.0 安裝為 Amazon EC2 執行個體上的專用 MirrorMaker 叢集。此選項適用於開發環境,也是此模式中使用的方法。如需 MirrorMaker2.0 其他部署選項的詳細資訊,請參閱此模式的其他資訊一節。 | AWS 系統管理員、雲端管理員、DevOps 工程師 |
指定 Kafka 叢集資訊。 | 在 Kafka 用戶端安裝 | AWS 系統管理員、雲端管理員、DevOps 工程師 |
啟動 MirrorMaker。 | 輸入下列命令以啟動 MirrorMaker 並傳遞 mm2.properties 檔案。
| AWS 系統管理員、雲端管理員、DevOps 工程師 |
監控進度。 | 透過檢查每個主題的最後一個位移與 MirrorMaker 正在耗用之主題的目前位移之間的延遲,來檢查進度。如需說明,請參閱 Kafka 文件中的監控地理複寫 | AWS 系統管理員、雲端管理員、DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
停止取用者應用程式。 | 停止消耗來源叢集資料的所有取用者應用程式。 | 應用程式開發人員 |
啟動取用者應用程式。 | 變更應用程式引導組態以指向目的地叢集。然後開始在目標叢集上消費。 | 應用程式開發人員 |
停止來源叢集上的生產者。 | 當取用者應用程式在目標叢集上成功消費時,請停止來源叢集上的生產者。 | 應用程式開發人員 |
啟動目標叢集上的生產者。 | 變更生產者的組態引導伺服器,並指向目標叢集。等待 MirrorMaker 完成從來源叢集鏡像所有資料,再啟動生產者。 | 應用程式開發人員 |
停止 MirrorMaker。 | 生產者移至目標叢集後,停止 MirrorMaker。 | AWS 系統管理員、雲端管理員、DevOps 工程師 |
相關資源
AWS 資源
使用 MirrorMaker 遷移叢集 (Amazon MSK 文件)
Amazon MSK 遷移實驗室
(AWS 研討會工作室)
其他資源
MirrorMaker 2.0
(Apache Kafka 改進提案) 地理複寫:跨叢集資料鏡像
(Apache Kafka 文件)
其他資訊
此模式會在 Amazon EC2 上執行 MirrorMaker 2.0 做為專用 MirrorMaker 叢集。此選項適用於開發環境。雖然未在此模式中討論,但您也可以在 Kafka Connect 叢集中執行 MirrorMaker 2.0。此部署選項使用 Kafka 生態系統內可改善擴展和維護的架構。您可以將連接器部署到具有相關聯組態的 Kafka Connect 叢集,以執行應用程式。連接器可以在獨立模式下執行以進行開發或測試,或在分散式模式下執行以進行生產。如需詳細資訊,請參閱在 Connect 叢集中執行 MirrorMaker