4.3. ネットワークアドレスの設定
仮想クラスターの設定には、ネットワーク通信を管理し、ブローカーアドレス情報をクライアントに提供するネットワークアドレス設定プロバイダーが必要です。
Streams for Apache Kafka Proxy には 2 つの組み込みプロバイダーがあります。
- ブローカーアドレスプロバイダー (
PortPerBrokerClusterNetworkAddressConfigProvider
) - ブローカーごとのネットワークアドレス設定プロバイダーは、仮想クラスターのブートストラップアドレス用に 1 つのポートと、ターゲット Kafka クラスター内のブローカーごとに 1 つのポートを開きます。ポートは動的に維持されます。たとえば、ブローカーがクラスターから削除されると、そのブローカーに割り当てられているポートは閉じられます。
- SNI ルーティングアドレスプロバイダー (
SniRoutingClusterNetworkAddressConfigProvider
) - SNI ルーティングプロバイダーは、すべての仮想クラスターに対して 1 つのポートを開くか、またはそれぞれに 1 つのポートを開きます。Kafka クラスターの場合、クラスター全体または各ブローカーのポートを開くことができます。SNI ルーティングプロバイダーは、SNI 情報を使用してトラフィックをルーティングする場所を決定します。
ブローカーアドレスプロバイダーの設定例
clusterNetworkAddressConfigProvider: type: PortPerBrokerClusterNetworkAddressConfigProvider config: bootstrapAddress: mycluster.kafka.com:9192 1 brokerAddressPattern: mybroker-$(nodeId).mycluster.kafka.com 2 brokerStartPort: 9193 3 numberOfBrokerPorts: 3 4 bindAddress: 192.168.0.1 5
- 1
- Kafka クライアントが使用するブートストラップアドレスのホスト名とポート。
- 2
- (オプション) ブローカーアドレスを形成するために使用されるブローカーアドレスパターン。定義されていない場合は、デフォルトでブートストラップアドレスのホスト名部分とブローカーに割り当てられたポート番号になります。$(nodeId) トークンは、ブローカーの
node.id
(node.id
が設定されていない場合はbroker.id
) に置き換えられます。 - 3
- (オプション) ブローカーポート範囲の開始番号。デフォルトはブートストラップアドレスのポートに 1 を加えた値です。
- 4
- (オプション) 使用可能なブローカーポートの最大数。デフォルトは 3 です。
- 5
- (オプション) ポートをバインドするときに使用するバインドアドレス。定義されていない場合は、すべてのネットワークインターフェイスがバインドされます。
ブローカーアドレス設定の例では、次のブローカーアドレスが作成されます。
mybroker-0.mycluster.kafka.com:9193 mybroker-1.mycluster.kafka.com:9194 mybroker-2.mycluster.kafka.com:9194
複数の物理クラスターを含む設定の場合、numberOfBrokerPorts
が (ブローカーの数 * ブローカーあたりのリスナーの数) + すべてのクラスターのブートストラップリスナーの数に設定されていることを確認します。たとえば、物理クラスターが 2 つあり、それぞれにノードが 3 つ含まれているとします。各ブローカーにリスナーが 1 つある場合、設定の値として 8 が必要です (ブローカーリスナー用の 3 つのポートと各クラスターのブートストラップリスナー用の 1 つのポートで構成)。
SNI ルーティングアドレスプロバイダーの設定例
clusterNetworkAddressConfigProvider:
type: SniRoutingClusterNetworkAddressConfigProvider
config:
bootstrapAddress: mycluster.kafka.com:9192 1
brokerAddressPattern: mybroker-$(nodeId).mycluster.kafka.com
bindAddress: 192.168.0.1
- 1
- ブートストラップアドレスとブローカーを含むすべてのトラフィック用の単一のアドレス。
SNI ルーティングアドレス設定では、各ブローカーのルートを生成するために brokerAddressPattern
の指定が必須です。