4.2. リスナー
Kafka ブローカーは、複数のリスナーを使用するように設定できます。各リスナーは異なるポートまたはネットワークインターフェースをリッスンするために使用され、異なる設定を指定できます。リスナーは、設定ファイルの listeners
プロパティーで設定されます。listeners
プロパティーには、各リスナーが <listenerName>://<hostname>:_<port>_
として設定されたリスナーのリストが含まれます。ホスト名の値が空の場合、Kafka は java.net.InetAddress.getCanonicalHostName()
をホスト名として使用します。以下の例は、複数のリスナーの設定方法を示しています。
listeners=INT1://:9092,INT2://:9093,REPLICATION://:9094
Kafka クライアントが Kafka クラスターに接続する場合は、最初に ブートストラップサーバー に接続します。ブートストラップサーバー はクラスターノードの 1 つです。クライアントには、クラスターの一部である他のすべてのブローカーの一覧を提供し、クライアントは個別に接続します。デフォルトでは、ブートストラップサーバー は listeners
フィールドに基づくノードのリストをクライアントに提供します。
アドバタイズされたリスナー
listeners プロパティーに指定されたものとは異なるアドレスのセットをクライアントに付与することができます。プロキシーなどの追加のネットワークインフラストラクチャーがクライアントとブローカー間、または IP アドレスの代わりに外部 DNS 名が使用される場合に役立ちます。このブローカーは、advertised.listeners 設定プロパティーでリスナーのアドバタイズされたアドレスを定義できます。このプロパティーは listeners プロパティーと同じフォーマットになります。以下の例は、アドバタイズされたリスナーの設定方法を示しています。
listeners=INT1://:9092,INT2://:9093 advertised.listeners=INT1://my-broker-1.my-domain.com:1234,INT2://my-broker-1.my-domain.com:1234:9093
リスナーの名前は、listeners
プロパティーのリスナー名と一致する必要があります。
ブローカー間のリスナー
クラスターにトピックがレプリケートされたら、このようなトピックを担当するブローカーは、これらのトピックでメッセージをレプリケートするために相互に通信する必要があります。複数のリスナーが設定される場合、設定フィールド inter.broker.listener.name
を使用してブローカー間のレプリケーションに使用されるリスナーの名前を指定します。以下に例を示します。
inter.broker.listener.name=REPLICATION