4.5. マルチノードの Kafka クラスターの実行

この手順では、Kafka をマルチノードクラスターとして設定および実行する方法を説明します。

前提条件

クラスターの実行

AMQ Streams クラスターの Kafka ブローカーごとに以下を行います。

  1. 以下のように /opt/kafka/config/server.properties Kafka 設定ファイルを編集します。

    • 最初のブローカーの broker.id フィールドを 0、第 2 ブローカーの 1 などに設定します。
    • zookeeper.connect オプションで ZooKeeper に接続する詳細を設定します。
    • Kafka リスナーを設定します。
    • コミットログが logs.dir ディレクトリーに格納されるディレクトリーを設定します。

      Kafka ブローカーの設定例は次のとおりです。

      broker.id=0
      zookeeper.connect=zoo1.my-domain.com:2181,zoo2.my-domain.com:2181,zoo3.my-domain.com:2181
      listeners=REPLICATION://:9091,PLAINTEXT://:9092
      inter.broker.listener.name=REPLICATION
      log.dirs=/var/lib/kafka

      各 Kafka ブローカーが同じハードウェアで実行されている一般的なインストールでは、broker.id 設定プロパティーのみがブローカー設定によって異なります。

  2. デフォルトの設定ファイルを使用して Kafka ブローカーを起動します。

    su - kafka
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
  3. Kafka ブローカーが稼働していることを確認します。

    jcmd | grep Kafka

ブローカーの検証

クラスターのすべてのノードが稼働したら、ncat ユーティリティーを使用して dump コマンドを ZooKeeper ノードの 1 つに送信し、すべてのノードが Kafka クラスターのメンバーであることを確認します。このコマンドは、ZooKeeper に登録されているすべての Kafka ブローカーを出力します。

  1. ncat stat を使用してノードのステータスを確認します。

    echo dump | ncat zoo1.my-domain.com 2181

    出力には、先ほど設定および起動したすべての Kafka ブローカーが含まれている必要があります。

    3 つのノードで構成される Kafka クラスターの ncat コマンドからの出力例:

    SessionTracker dump:
    org.apache.zookeeper.server.quorum.LearnerSessionTracker@28848ab9
    ephemeral nodes dump:
    Sessions with Ephemerals (3):
    0x20000015dd00000:
            /brokers/ids/1
    0x10000015dc70000:
            /controller
            /brokers/ids/0
    0x10000015dc70001:
            /brokers/ids/2

関連情報