4.2. リスナー
リスナーは、Kafka ブローカーへの接続に使用されます。各 Kafka ブローカーは、複数のリスナーを使用するように設定できます。各リスナーには異なる設定が必要で、これにより別のポートまたはネットワークインターフェースでリッスンすることができます。
				リスナーを設定するには、設定ファイル (/opt/kafka/config/server.properties) の listeners プロパティーを編集します。listeners プロパティーにリスナーをコンマ区切りのリストとして追加します。各プロパティーを以下のように設定します。
			
<listenerName>://<hostname>:<port>
<listenerName>://<hostname>:<port>
				<hostname> が空の場合、Kafka は java.net.InetAddress.getCanonicalHostName() クラスをホスト名として使用します。
			
複数リスナーの設定例
listeners=internal-1://:9092,internal-2://:9093,replication://:9094
listeners=internal-1://:9092,internal-2://:9093,replication://:9094
				Kafka クライアントが Kafka クラスターに接続する場合、最初にクラスターノードの 1 つである ブートストラップサーバー に接続します。ブートストラップサーバーはクライアントにクラスター内のすべてのブローカーの一覧を提供し、クライアントは各ブローカーに個別に接続します。ブローカーのリストは、設定された listeners に基づいています。
			
アドバタイズされたリスナー
					任意で、advertised.listeners プロパティーを使用して、listeners プロパティーに指定されたものとは異なるリスナーアドレスのセットをクライアントに提供できます。これは、プロキシーなどの追加のネットワークインフラストラクチャーがクライアントとブローカー間にある場合、または IP アドレスではなく外部 DNS 名が使用されている場合に便利です。
				
				advertised.listeners プロパティーは、listeners プロパティーと同じようにフォーマットされます。
			
アドバタイズされたリスナーの設定例
listeners=internal-1://:9092,internal-2://:9093 advertised.listeners=internal-1://my-broker-1.my-domain.com:1234,internal-2://my-broker-1.my-domain.com:1235
listeners=internal-1://:9092,internal-2://:9093
advertised.listeners=internal-1://my-broker-1.my-domain.com:1234,internal-2://my-broker-1.my-domain.com:1235
					アドバタイズされたリスナーの名前は、listeners プロパティーに記載されているものと一致する必要があります。
				
ブローカー間のリスナー
ブローカー間のリスナーは、Kafka ブローカー間の通信に使用されます。ブローカー間の通信は以下に必要です。
- 異なるブローカー間のワークロードの調整
 - 異なるブローカーに格納されているパーティション間でのメッセージのレプリケーション
 - パーティションリーダーシップの変更など、コントローラーからの管理タスクの処理
 
				ブローカー間のリスナーは、希望のポートに割り当てることができます。複数のリスナーが設定されている場合、inter.broker.listener.name プロパティーでブローカー間リスナーの名前を定義できます。
			
				ここでは、ブローカー間リスナーの名前は REPLICATION です。
			
listeners=REPLICATION://0.0.0.0:9091 inter.broker.listener.name=REPLICATION
listeners=REPLICATION://0.0.0.0:9091
inter.broker.listener.name=REPLICATION
コントロールプレーンリスナー
デフォルトでは、コントローラーと他のブローカー間の通信には、ブローカー間のリスナー が使用されます。コントローラーは、パーティションリーダーの変更などの管理タスクを調整します。
コントローラー接続用に、専用の コントロールプレーンリスナー を有効にすることができます。コントロールプレーンリスナーは、希望のポートに割り当てることができます。
				コントロールプレーンリスナーを有効にするには、リスナー名で control.plane.listener.name プロパティーを設定します。
			
listeners=CONTROLLER://0.0.0.0:9090,REPLICATION://0.0.0.0:9091 ... control.plane.listener.name=CONTROLLER
listeners=CONTROLLER://0.0.0.0:9090,REPLICATION://0.0.0.0:9091
...
control.plane.listener.name=CONTROLLER
コントロールプレーンのリスナーを有効にすると、コントローラーの通信がブローカー間でのデータレプリケーションによって遅延しないため、クラスターのパフォーマンスが向上する可能性があります。データレプリケーションは、ブローカー間リスナーを介して続行されます。
				control.plane.listener が設定されていない場合、コントローラー接続には ブローカー間のリスナー が使用されます。
			
詳細は、「付録A ブローカー設定パラメーター」を参照してください。