將 Apache Kafka 工作負載遷移至 Azure HDInsight 4.0
Azure HDInsight 4.0 提供最新的開放原始碼元件,並大幅增強效能、連線能力和安全性。 本文件說明如何將 HDInsight 3.6 上的 Apache Kafka 工作負載移轉至 HDInsight 4.0。 將工作負載移轉至 HDInsight 4.0 之後,您可以使用 HDInsight 3.6 上無法使用的許多新功能。
HDInsight 3.6 Kafka 移轉路徑
HDInsight 3.6 支援兩個版本的 Kafka:1.0.0 和 1.1.0。 HDInsight 4.0 支援 1.1.0 和 2.1.0 版。 視要執行的 Kafka 版本和您想要執行的 HDInsight 版本而定,有多個支援的移轉路徑。 下圖說明這些路徑並說明。
- 在最新版本上執行 Kafka 和 HDInsight:使用 Kafka 2.1.0 將 HDInsight 3.6 和 Kafka 1.0.0 或 1.1.0 應用程式移轉至 HDInsight 4.0(下列路徑 D 和 E)。
- 在最新版本上執行 HDInsight,但 Kafka 只能在較新版本上執行:將 HDInsight 3.6 和 Kafka 1.0.0 應用程式移轉至具有 Kafka 1.1.0 的 HDInsight 4.0 (路徑 B 如下)。
- 在最新版本上執行 HDInsight,保留 Kafka 版本:將 HDInsight 3.6 和 Kafka 1.1.0 應用程式移轉至具有 Kafka 1.1.0 的 HDInsight 4.0 (路徑 C 如下)。
- 在較新版本上執行 Kafka,保留 HDInsight 版本:將 Kafka 1.0.0 應用程式移轉至 1.1.0,並保留在 HDInsight 3.6 上(路徑 A 如下)。 請注意,此選項仍然需要部署新的叢集。 不支援升級現有叢集上的 Kafka 版本。 使用您想要的版本建立叢集之後,請移轉 Kafka 用戶端以使用新的叢集。
Apache Kafka 版本
Kafka 1.1.0
如果您從 Kafka 1.0.0 移轉至 1.1.0,您可以利用下列新功能:
- Kafka 控制器的改善可加速受控制的關機,讓您可以重新啟動訊息代理程式並更快從問題中復原。
- FetchRequests 邏輯的改善,可讓您在叢集上擁有更多分割區(因此更多主題)。
- Kafka 連線 支援主題的記錄標頭和正則表達式。
如需更新的完整清單,請參閱 Apache Kafka 1.1 版本資訊。
Apache Kafka 2.1.0
如果您移轉至 Kafka 2.1,您可以利用下列功能:
- 改善複寫通訊協定所造成的代理程序復原能力更好。
- Kafka 管理員 Client API 中的新功能。
- 可設定的配額管理。
- 支援 Zstandard 壓縮。
如需更新的完整清單,請參閱 Apache Kafka 2.0 版本資訊和 Apache Kafka 2.1 版本資訊。
Kafka 用戶端相容性
新的 Kafka 訊息代理程式支援舊版用戶端。 KIP-35 - 擷取通訊協定版本 引進了動態判斷 Kafka 訊息代理程式和 KIP-97 功能的機制:改進的 Kafka 用戶端 RPC 相容性原則 引進了新的相容性原則,並保證 Java 用戶端。 先前,Kafka 用戶端必須與相同版本或較新版本的訊息代理程序互動。 現在,較新版本的 Java 用戶端和其他支援 KIP-35 的用戶端,例如 librdkafka
可以回復為較舊的要求類型,或在功能無法使用時擲回適當的錯誤。
請注意,這並不表示用戶端支援較舊的訊息代理程式。 如需詳細資訊,請參閱相容性矩陣。
一般移轉程式
下列移轉指引假設單一虛擬網路中 HDInsight 3.6 上部署的 Apache Kafka 1.0.0 或 1.1.0 叢集。 現有的訊息代理程式有一些主題,並正由生產者和取用者主動使用。
若要完成移轉,請執行下列步驟:
部署新的 HDInsight 4.0 叢集和客戶端進行測試。 部署新的 HDInsight 4.0 Kafka 叢集。 如果可以選取多個 Kafka 叢集版本,建議您選取最新版本。 部署之後,視需要設定一些參數,並建立與現有環境同名的主題。 此外,視需要設定 TLS 和自備金鑰 (BYOK) 加密。 然後檢查它是否與新的叢集正常運作。
切換產生者應用程式的叢集,並等到目前取用者取用所有佇列數據為止。 當新的 HDInsight 4.0 Kafka 叢集就緒時,請將現有的生產者目的地切換至新的叢集。 請保留它,直到現有的取用者應用程式已取用來自現有叢集的所有數據為止。
在取用者應用程式上切換叢集。 確認現有的取用者應用程式已完成從現有叢集取用所有數據之後,請將聯機切換至新的叢集。
視需要移除舊的叢集和測試應用程式。 一旦切換完成並正常運作,請視需要移除舊的 HDInsight 3.6 Kafka 叢集和測試中使用的生產者和取用者。