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

本教學課程說明如何使用 Kafka Mirror Maker 1,將 Kafka 訊息代理程式鏡映到 Azure 事件中樞。

Kafka MirrorMaker with Event Hubs

注意

您可在 GitHub 上取得此範例

注意

本文包含字詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。

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

  • 建立事件中樞命名空間
  • 複製範例專案
  • 設定 Kafka 叢集
  • 設定 Kafka MirrorMaker
  • 執行 Kafka MirrorMaker

簡介

本教學課程說明事件中樞和 Kafka MirrorMaker 如何藉由在事件中樞服務中「鏡映」Kafka 輸入資料流,而將現有的 Kafka 管線整合到 Azure 中,這可讓您使用數個同盟模式來整合 Apache Kafka 資料流。

Azure 事件中樞 Kafka 端點可讓您使用 Kafka 通訊協定 (亦即 Kafka 用戶端) 連線到 Azure 事件中樞。 幾乎不需要變更 Kafka 應用程式,您就可以連線到 Azure 事件中樞,並享受 Azure 生態系統的優點。 事件中樞目前支援 Apache Kafka 1.0 版和更新版本的通訊協定。

您可以單向 (從 Apache Kafka 到事件中樞) 使用 Apache Kafka 的 MirrorMaker 1。 MirrorMaker 2 則可以雙向使用,但可在 MirrorMaker 2 中設定的 MirrorCheckpointConnectorMirrorHeartbeatConnector都必須設定為指向 Apache Kafka 訊息代理程式,而不是指向事件中樞。 本教學課程會示範如何設定 MirrorMaker 1。

必要條件

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

  • 請參閱適用於 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。

建立事件中樞命名空間

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

複製範例專案

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

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

設定 Kafka 叢集

使用 Kafka 快速入門指南 \(英文\) 使用所需的設定來設定叢集 (或使用現有的 Kafka 叢集)。

設定 Kafka MirrorMaker

Kafka MirrorMaker 可以「鏡像」資料流。 假設有來源和目的地 Kafka 叢集,MirrorMaker 可確保來源和目的地叢集都會收到傳送至來源叢集的所有訊息。 此範例示範如何鏡映來源 Kafka 叢集與目的地事件中樞。 此案例可用來將資料從現有的 Kafka 管線傳送至事件中樞,而不會中斷資料流程。

如需有關 Kafka MirrorMaker 的詳細資訊,請參閱 Kafka 鏡像/MirrorMaker 指南

若要設定 Kafka MirrorMaker,請為它提供一個 Kafka 叢集作為其取用者/來源,並提供一個事件中樞作為其生產者/目的地。

取用者設定

更新取用者設定檔 source-kafka.config,此檔案會告訴 MirrorMaker 來源 Kafka 叢集的屬性。

source-kafka.config
bootstrap.servers={SOURCE.KAFKA.IP.ADDRESS1}:{SOURCE.KAFKA.PORT1},{SOURCE.KAFKA.IP.ADDRESS2}:{SOURCE.KAFKA.PORT2},etc
group.id=example-mirrormaker-group
exclude.internal.topics=true
client.id=mirror_maker_consumer

生產者設定

現在更新生產者設定檔 mirror-eventhub.config,此檔案會告訴 MirrorMaker 將重複 (或「鏡像」) 的資料傳送至事件中樞服務。 具體來說,將 bootstrap.serverssasl.jaas.config 變更為指向您的事件中樞 Kafka 端點。 事件中樞服務需要安全 (SASL) 通訊,在下列設定中設定最後三個屬性即可達到這個目的:

mirror-eventhub.config
bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=mirror_maker_producer

#Required for Event Hubs
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

重要

{YOUR.EVENTHUBS.CONNECTION.STRING} 取代為事件中樞命名空間的連接字串。 如需有關取得連接字串的指示,請參閱取得事件中樞連接字串。 以下是範例組態:sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

執行 Kafka MirrorMaker

使用剛更新的設定檔,從 Kafka 根目錄中執行 Kafka MirrorMaker 指令碼。 請務必將設定檔複製到 Kafka 根目錄,或更新它在下列命令中的路徑。

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

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

在 MirrorMaker 執行時,Kafka 叢集和鏡映的事件中樞都會收到傳送到來源 Kafka 叢集的所有事件。 您可以使用 MirrorMaker 和事件中樞 Kafka 端點,將現有的 Kafka 管線移轉至受控 Azure 事件中樞服務,而不會變更現有的叢集或中斷任何進行中的資料流程。

範例

請參閱 GitHub 上的下列範例:

下一步

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