共用方式為


使用 Apache Kafka Mirror Maker 2 將資料從 Kafka 叢集複寫至事件中樞

本教學課程顯示如何使用 Mirror Maker 2,將資料從現有的 Kafka 叢集複寫至 Azure 事件中樞。

Image showing the flow of events from Kafka MirrorMaker to Event Hubs.

注意

您可在 GitHub 上取得此範例

在本教學課程中,您會了解如何:

  • 建立事件中樞命名空間
  • 設定或使用現有的 Kafka 叢集
  • 設定 Kafka Mirror Maker 2
  • 執行 Kafka Mirror Maker 2

簡介

Apache Kafka MirrorMaker 2.0 (MM2) 的設計目的旨在更輕鬆地將某個 Kafka 叢集中的主題鏡像或複寫到另一個 Kafka 叢集。 Mirror Maker 使用 Kafka Connect 架構來簡化設定和調整。 如需有關 Kafka MirrorMaker 的詳細資訊,請參閱 Kafka 鏡像/MirrorMaker 指南

由於 Azure 事件中樞與 Apache Kafka 通訊協定相容,因此您可以使用 Mirror Maker 2,在現有的 Kafka 叢集和事件中樞命名空間之間,複寫資料。

Mirror Maker 2 會動態偵測主題的變更,並確保來源和目標的主題屬性進行同步,包括位移和分割區。 其可用來在 Kafka 叢集和事件中樞命名空間之間雙向複寫資料。

必要條件

若要完成本教學課程,請確定您具有下列項目︰

  • 請參閱適用於 Apache Kafka 的事件中樞一文。
  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶
  • Java Development Kit (JDK) 1.7+
    • 在 Ubuntu 上,執行 apt-get install default-jdk 來安裝 JDK。
    • 務必設定 JAVA_HOME 環境變數,以指向 JDK 安裝所在的資料夾。
  • 下載安裝 Maven 二進位封存檔
    • 在 Ubuntu 上,您可以執行 apt-get install maven 來安裝 Maven。
  • Git
    • 在 Ubuntu 上,您可以執行 sudo apt-get install git 來安裝 Git。
  • Apache Kafka 散發套件
    • 下載慣用的 Apache Kafka 散發套件 (應包含 Mirror Maker 2 散發套件)。

建立事件中樞命名空間

您需要事件中樞命名空間,才能從任何事件中樞服務傳送和接收。 請參閱建立事件中樞,以取得建立命名空間和事件中樞的指示。 請務必複製事件中樞連接字串以供稍後使用。

複製範例專案

既然您已經有事件中樞連接字串,請複製適用於 Kafka 的 Azure 事件中樞存放庫,並瀏覽至 mirror-maker-2 子資料夾:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2

設定或使用現有的 Kafka 叢集

如果您沒有現有的 Kafka 叢集,請使用 Kafka 快速入門指南來設定具有所需設定的 Kafka 叢集 (或使用現有的 Kafka 叢集)。 為了進行測試,您也可以在新建立的 Kafka 叢集中建立幾個主題,然後將資料發佈至其中。

如果您在內部部署或受控 Kafka 雲端服務中已有現有的 Kafka 叢集,則可以使用該叢集將現有的資料複寫至事件中樞。

設定 Kafka Mirror Maker 2

Apache Kafka 散發套件隨附的 connect-mirror-maker.sh 指令碼,與實作分散式 Mirror Maker 2 叢集的 Kafka 程式庫搭售。 它會根據設定檔在內部管理 Connect 背景工作角色。 在內部,MirrorMaker 驅動程式會建立並處理每個連接器配對-MirrorSource ConnectorMirrorSink ConnectorMirrorCheckpoint ConnectorMirrorHeartbeat Connector

  1. 若要設定 Mirror Maker 2 以複寫資料,您需要更新 Mirror Maker 2 設定檔 kafka-to-eh-connect-mirror-maker.properties 來定義複寫拓撲。

  2. kafka-to-eh-connect-mirror-maker.properties 設定檔中,定義您計劃用於 Kafka 叢集 (來源) 和事件中樞 (目的地) 的叢集別名。

     # cluster aliases 
     clusters = source, destination
    
  3. 然後指定來源 (也就是 Kafka 叢集) 的連線資訊。

     source.bootstrap.servers = your-kafka-cluster-hostname:9092
     #source.security.protocol=SASL_SSL
     #source.sasl.mechanism=PLAIN
     #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
    
  4. 指定目的地 (您所建立的事件中樞命名空間) 的連線資訊。

     destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093
     destination.security.protocol=SASL_SSL
     destination.sasl.mechanism=PLAIN
     destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
    
  5. 啟用從來源 Kafka 叢集到目的地事件中樞命名空間的複寫流程。

     source->destination.enabled = true
     source->destination.topics = .*
    
  6. 更新 Mirror Maker 在目的地建立之遠端主題和內部主題的複寫因素。

     replication.factor=3
    
     checkpoints.topic.replication.factor=3
     heartbeats.topic.replication.factor=3
     offset-syncs.topic.replication.factor=3    
    
     offset.storage.replication.factor=3
     status.storage.replication.factor=3
     config.storage.replication.factor=3
    
  7. 然後將 kafka-to-eh-connect-mirror-maker.properties 設定檔複製到 Kafka 散發套件的 config 目錄,便可使用下列命令來執行 Mirror Maker 2 指令碼。

     ./bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
    
  8. 成功執行指令碼時,您應該會看到 Kafka 主題和事件複寫至事件中樞命名空間。

  9. 若要確認事件會到達啟用 Kafka 的事件中樞,請查看 Azure 入口網站中的輸入統計資料,或對事件中樞執行取用者。

範例

請參閱 GitHub 上的下列範例:

下一步

若要深入了解適用於 Kafka 的事件中樞,請參閱下列文章: