第3章 コンシューマー設定プロパティー
key.deserializer
型: class
重要度: 高
org.apache.kafka.common.serialization.Deserializer
インターフェイスを実装するキーのデシリアライザークラス。value.deserializer
型: class
重要度: 高
org.apache.kafka.common.serialization.Deserializer
インターフェイスを実装する値のデシリアライザークラス。bootstrap.servers
型: list
デフォルト: ""
有効な値: null 以外の文字列
重要度: 高
Kafka クラスターへの最初の接続を確立するために使用されるホストとポートのペアのリスト。クライアントは、ブートストラップ用にここで指定されたサーバーに関係なく、すべてのサーバーを利用します。このリストは、サーバーのフルセットを検出するために使用される最初のホストにのみ影響します。このリストは、
host1:port1,host2:port2,…
の形式にする必要があります。これらのサーバーは、(動的に変更される可能性がある) 完全なクラスターメンバーシップを検出するための最初の接続にだけ使用されるため、このリストにはサーバーの完全なセットを含める必要はありません (ただし、サーバーがダウンした場合に備えて、複数のサーバーが必要になる場合があります)。fetch.min.bytes
型: int
デフォルト: 1
有効な値: [0,…]
重要度: 高
サーバーがフェッチ要求に対して返す必要のあるデータの最小量。利用可能なデータが不十分な場合、リクエストは、リクエストに応答する前に、十分なデータが蓄積されるのを待ちます。デフォルト設定の 1 バイトは、1 バイトのデータが使用可能になってすぐに、あるいはデータの到着を待ってフェッチ要求がタイムアウトするとすぐに、フェッチ要求に応答することを意味します。これをより大きな値に設定すると、サーバーは大量のデータが蓄積されるのを待機することになり、追加の遅延を犠牲にしてサーバーのスループットを少し向上させることができます。
group.id
型: string
デフォルト: null
重要度: 高
このコンシューマーが属するコンシューマーグループを識別する一意の文字列。このプロパティーは、コンシューマーが
subscribe(topic)
を使用したグループ管理機能または Kafka ベースのオフセット管理ストラテジーのいずれかを使用する場合に必要です。group.protocol
型: string
デフォルト: classic
有効な値: (大文字と小文字は区別されません) [CONSUMER, CLASSIC]
重要度: 高
グループプロトコルのコンシューマーが使用する必要があります。現在、"classic" または "consumer" をサポートしています。"consumer" を指定した場合、コンシューマーグループプロトコルが使用されます。そうでない場合は、クラシックグループプロトコルが使用されます。
heartbeat.interval.ms
型: int
デフォルト: 3000 (3 秒)
重要度: 高
Kafka のグループ管理機能を使用する場合の、ハートビートから consumer コーディネーター間の想定される時間。ハートビートは、コンシューマーのセッションがアクティブな状態を維持し、新しいコンシューマーがグループに参加したり離脱したりする際のリバランスを促進するために使用されます。この値は
session.timeout.ms
よりも低く設定する必要がありますが、通常はその値の 1/3 以下に設定する必要があります。さらに低く調整することで、通常のリバランスの予想時間を制御することもできます。max.partition.fetch.bytes
型: int
デフォルト: 1048576 (1 メビバイト)
有効な値: [0,…]
重要度: 高
サーバーが返すパーティションごとのデータの最大量。レコードはコンシューマーによってバッチでフェッチされます。フェッチの最初の空でないパーティションの最初のレコードバッチがこの制限よりも大きい場合でも、コンシューマーが確実に処理を進めることができるようにバッチが返されます。ブローカーによって許可される最大レコードバッチサイズは、
message.max.bytes
(ブローカー設定) またはmax.message.bytes
(トピック設定) で定義されます。コンシューマーのリクエストサイズを制限する場合は、fetch.max.bytes を参照してください。session.timeout.ms
型: int
デフォルト: 45000 (45 秒)
重要度: 高
Kafka のグループ管理機能の使用時にクライアント障害を検出するために使用されるタイムアウト。クライアントは定期的にハートビートを送信し、liveness をブローカーに示します。このセッションタイムアウトの期限切れ前にブローカーによってハートビートが受信されない場合、ブローカーはグループからこのクライアントを削除し、リバランスを開始します。この値は、
group.min.session.timeout.ms
およびgroup.max.session.timeout.ms
によってブローカー設定で設定される許容範囲内である必要があることに注意してください。ssl.key.password
型: password
デフォルト: null
重要度: 高
キーストアファイル内の秘密鍵、または 'ssl.keystore.key' で指定された PEM キーのパスワード。
ssl.keystore.certificate.chain
型: password
デフォルト: null
重要度: 高
'ssl.keystore.type' で指定された形式の証明書チェーン。デフォルトの SSL エンジンファクトリーは、X.509 証明書のリストを含む PEM 形式のみをサポートします。
ssl.keystore.key
型: password
デフォルト: null
重要度: 高
'ssl.keystore.type' で指定された形式の秘密鍵。デフォルトの SSL エンジンファクトリーは、PKCS#8 キーを持つ PEM 形式のみをサポートします。鍵が暗号化されている場合は、'ssl.key.password' を使用して鍵のパスワードを指定する必要があります。
ssl.keystore.location
型: string
デフォルト: null
重要度: 高
キーストアファイルのロケーション。これはクライアントではオプションで、クライアントの双方向認証に使用できます。
ssl.keystore.password
型: password
デフォルト: null
重要度: 高
キーストアファイルのストアパスワード。これはクライアントではオプションで、'ssl.keystore.location' が設定されている場合にのみ必要です。キーストアのパスワードは PEM 形式ではサポートされません。
ssl.truststore.certificates
型: password
デフォルト: null
重要度: 高
'ssl.truststore.type' で指定された形式の信頼できる証明書。デフォルトの SSL エンジンファクトリーは、X.509 証明書を使用する PEM 形式のみをサポートします。
ssl.truststore.location
型: string
デフォルト: null
重要度: 高
トラストストアファイルのロケーション。
ssl.truststore.password
型: password
デフォルト: null
重要度: 高
トラストストアファイルのパスワード。パスワードが設定されていない場合、設定されたトラストストアファイルは引き続き使用されますが、整合性チェックは無効になります。トラストストアのパスワードは PEM 形式ではサポートされません。
allow.auto.create.topics
型: boolean
デフォルト: true
重要度: 中
トピックをサブスクライブまたは割り当てるときに、ブローカーでのトピックの自動作成を許可します。サブスクライブするトピックは、ブローカーが
auto.create.topics.enable
ブローカー設定を使用して許可されている場合にのみ自動的に作成されます。この設定は、0.11.0 より古いブローカーを使用する場合は、false
に設定する必要があります。auto.offset.reset
型: string
デフォルト: latest
有効な値: [latest, earliest, none]
重要度: 中
Kafka に初期オフセットがない場合や、現在のオフセットがサーバー上に存在しない場合 (例: データが削除された場合など) の対処方法。
- earliest: 自動的にオフセットを最も古いオフセットにリセットする
- latest: 自動的にオフセットを最新のオフセットにリセットする
- none: コンシューマーのグループに以前のオフセットが見つからない場合は、コンシューマーに例外を出力する
anything else: コンシューマーに例外を出力する
この設定を最新に設定しているときにパーティション番号を変更すると、メッセージ配信に損失が生じる可能性があることに注意してください。これは、コンシューマーがオフセットをリセットする前に、プロデューサーが新しく追加されたパーティション (つまり、初期オフセットがまだ存在しないパーティション) にメッセージを送信し始める可能性があるためです。
client.dns.lookup
型: string
デフォルト: use_all_dns_ips
有効な値: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
重要度: 中
クライアントが DNS ルックアップを使用する方法を制御します。
use_all_dns_ips
に設定すると、正常な接続が確立されるまで、返された各 IP アドレスに順番に接続します。切断後に、次の IP が使用されます。すべての IP が一度使用されると、クライアントはホスト名から IP を再度解決します (ただし、JVM と OS の両方は DNS 名の検索をキャッシュします)。resolve_canonical_bootstrap_servers_only
に設定すると、各ブートストラップアドレスを正規名のリストに解決します。ブートストラップフェーズ後、これはuse_all_dns_ips
と同じように動作します。connections.max.idle.ms
型: long
デフォルト: 540000 (9 分)
重要度: 中
この設定で指定された期間 (ミリ秒単位) の後にアイドル状態の接続を閉じます。
default.api.timeout.ms
型: int
デフォルト: 60000 (1 分)
有効な値: [0,…]
重要度: 中
クライアント API のタイムアウト (ミリ秒単位) を指定します。この設定は、
timeout
パラメーターを指定しないすべてのクライアント操作のデフォルトタイムアウトとして使用されます。enable.auto.commit
型: boolean
デフォルト: true
重要度: 中
true の場合、コンシューマーのオフセットは定期的にバックグラウンドでコミットされます。
exclude.internal.topics
型: boolean
デフォルト: true
重要度: 中
サブスクライブされたパターンと一致する内部トピックをサブスクリプションから除外するべきかどうか。常に内部トピックに明示的にサブスクライブできます。
fetch.max.bytes
型: int
デフォルト: 52428800 (50 メビバイト)
有効な値: [0,…]
重要度: 中
サーバーがフェッチ要求に対して返す必要のあるデータの最大量。レコードはコンシューマーによってバッチでフェッチされ、フェッチの最初の空ではないパーティションの最初のレコードバッチがこの値よりも大きい場合でも、コンシューマーが確実に処理を進めることができるようにレコードバッチが返されます。そのため、絶対的な最大値ではありません。ブローカーによって許可される最大レコードバッチサイズは、
message.max.bytes
(ブローカー設定) またはmax.message.bytes
(トピック設定) で定義されます。コンシューマーは複数のフェッチを並行して実行することに注意してください。group.instance.id
型: string
デフォルト: null
有効な値: 空以外の文字列
重要度: 中
エンドユーザーが提供する consumer インスタンスの一意の識別子。non-empty strings のみが許可されます。設定されている場合、consumer は静的メンバーとして扱われます。つまり、常に、この ID を持つ 1 つのインスタンスのみが consumer グループで許可されます。これは、より大きなセッションタイムアウトと組み合わせて使用して、一時的な利用不可 (プロセス再起動など) によるグループのリバランスを回避します。設定しないと、consumer は従来の動作である動的メンバーとしてグループに参加します。
group.remote.assignor
型: string
デフォルト: null
重要度: 中
使用するサーバーサイドのアサイナー。アサイナーを指定しない場合は、グループコーディネーターがアサイナーを選択します。この設定は、
group.protocol
が "consumer" に設定されている場合にのみ適用されます。isolation.level
型: string
デフォルト: read_uncommitted
有効な値: [read_committed, read_uncommitted]
重要度: 中
トランザクションで書き込まれたメッセージを読み取る方法を制御します。
read_committed
に設定すると、consumer.poll() はコミットされたトランザクションメッセージのみを返します。read_uncommitted
(デフォルト) に設定すると、consumer.poll() は中断されたトランザクションメッセージも含めて、すべてのメッセージを返します。非トランザクションメッセージは、どちらのモードでも無条件に返されます。メッセージは常にオフセットの順序で返されます。そのため、
read_committed
モードでは、consumer.poll() は最初のオープントランザクションのオフセットよりも 1 つ小さい最後の安定したオフセット (LSO) までのメッセージのみを返します。特に、継続中のトランザクションに属するメッセージの後に表示されるメッセージは、関連するトランザクションが完了するまで保留されます。その結果、read_committed
コンシューマーは、インフライトトランザクションがある場合に、ハイウォーターマークまで読み取ることができません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Further, when in `read_committed` the seekToEnd method will return the LSO .
Further, when in `read_committed` the seekToEnd method will return the LSO .
max.poll.interval.ms
型: int
デフォルト: 300000 (5 分)
有効な値: [1,…]
重要度: 中
コンシューマーグループ管理を使用する場合の poll() の呼び出し間の最大遅延。これにより、consumer がさらにレコードをフェッチする前にアイドル状態になることができる時間に上限が設定されます。このタイムアウトの期限が切れる前に poll() が呼び出されない場合、コンシューマーは失敗とみなされ、グループはパーティションを別のメンバーに再割り当てするためにリバランスします。null 以外の
group.instance.id
を使用しているコンシューマーがこのタイムアウトに達した場合、パーティションは即座に再割り当てされません。代わりに、コンシューマーはハートビートの送信を停止し、session.timeout.ms
の期限が切れるとパーティションが再割り当てされます。これは、シャットダウンした静的コンシューマーの動作を反映しています。max.poll.records
型: int
デフォルト: 500
有効な値: [1,…]
重要度: 中
poll() への単一の呼び出しで返される最大レコード数。
max.poll.records
は、基礎となるフェッチ動作には影響しません。コンシューマーは各フェッチ要求からのレコードをキャッシュし、各ポーリングからインクリメンタルにこれらを返します。partition.assignment.strategy
型: list
デフォルト: class org.apache.kafka.clients.consumer.RangeAssignor,class org.apache.kafka.clients.consumer.CooperativeStickyAssignor
有効な値: null 以外の文字列
重要度: 中
グループ管理が使用されている場合に、クライアントがコンシューマーインスタンス間でパーティションの所有権を分散するために使用する、サポートされているパーティション割り当て戦略のクラス名またはクラスタイプのリスト (優先度順)。利用可能なオプションは以下の通りです。
-
org.apache.kafka.clients.consumer.RangeAssignor
: トピックごとにパーティションを割り当てます。 -
org.apache.kafka.clients.consumer.RoundRobinAssignor
: パーティションをラウンドロビン方式でコンシューマーに割り当てます。 -
org.apache.kafka.clients.consumer.StickyAssignor
: できるだけ多くの既存のパーティション割り当てを保持しながら、最大限にバランスの取れた割り当てを保証します。 org.apache.kafka.clients.consumer.CooperativeStickyAssignor
: 同じ StickyAssignor ロジックに従いますが、Cooperative Rebalancing を許可します。デフォルトのアサイナーは [RangeAssignor, CooperativeStickyAssignor] で、デフォルトで RangeAssignor を使用しますが、リストから RangeAssignor を削除する 1 回のローリングバウンスで CooperativeStickyAssignor にアップグレードできます。
org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
インターフェイスを実装すると、カスタム割り当てストラテジーでプラグインできます。
-
receive.buffer.bytes
型: int
デフォルト: 65536 (64 キビバイト)
有効な値: [-1,…]
重要度: 中
データの読み取り時に使用する TCP 受信バッファー (SO_RCVBUF) のサイズ。値が -1 の場合、OS のデフォルトが使用されます。
request.timeout.ms
型: int
デフォルト: 30000 (30 秒)
有効な値: [0,…]
重要度: 中
この設定は、クライアントの要求の応答を待つ最大時間を制御します。タイムアウトが経過する前に応答が受信されない場合、クライアントは必要に応じてリクエストを再送信します。または、再試行が使い切られるとリクエストが失敗します。
sasl.client.callback.handler.class
型: class
デフォルト: null
重要度: 中
AuthenticateCallbackHandler インターフェイスを実装する SASL クライアントコールバックハンドラークラスの完全修飾名。
sasl.jaas.config
型: password
デフォルト: null
重要度: 中
JAAS 設定ファイルで使用される形式の SASL 接続の JAAS ログインコンテキストパラメーター。JAAS 設定ファイルの形式は、こちら で説明されています。値の形式は
loginModuleClass controlFlag (optionName=optionValue)*;
です。ブローカーの場合、設定の前にリスナー接頭辞と SASL メカニズム名を小文字で指定する必要があります。たとえば、listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required; などです。sasl.kerberos.service.name
型: string
デフォルト: null
重要度: 中
Kafka が実行される Kerberos プリンシパル名。これは、Kafka の JAAS 設定または Kafka の設定で定義できます。
sasl.login.callback.handler.class
型: class
デフォルト: null
重要度: 中
AuthenticateCallbackHandler インターフェイスを実装する SASL ログインコールバックハンドラークラスの完全修飾名。ブローカーの場合、ログインコールバックハンドラー設定の前には、リスナー接頭辞と SASL メカニズム名を小文字で指定する必要があります。たとえば、listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler などです。
sasl.login.class
型: class
デフォルト: null
重要度: 中
Login インターフェイスを実装するクラスの完全修飾名。ブローカーの場合、ログイン設定の前にリスナー接頭辞と SASL メカニズム名を小文字で指定する必要があります。たとえば、listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin です。
sasl.mechanism
型: string
デフォルト: GSSAPI
重要度: 中
クライアント接続に使用される SASL メカニズム。これは、セキュリティープロバイダーが利用可能な任意のメカニズムである可能性があります。GSSAPI はデフォルトのメカニズムです。
sasl.oauthbearer.jwks.endpoint.url
型: string
デフォルト: null
重要度: 中
プロバイダーの JWKS (JSON Web Key Set) を取得できる OAuth/OIDC プロバイダーの URL。URL は、HTTP(S) ベースまたはファイルベースにすることができます。URL が HTTP(S) ベースの場合、JWKS データは、ブローカーの起動時に設定された URL を介して OAuth/OIDC プロバイダーから取得されます。その時点で最新のすべてのキーは、受信リクエストのためにブローカーにキャッシュされます。まだキャッシュにない "kid" ヘッダークレーム値を含む JWT の認証リクエストを受信した場合、JWKS エンドポイントはオンデマンドで再度クエリーされます。ただし、ブローカーは、sasl.oauthbearer.jwks.endpoint.refresh.ms ミリ秒ごとに URL をポーリングして、それらを含む JWT リクエストが受信される前に、今後のキーでキャッシュを更新します。URL がファイルベースの場合、ブローカーは起動時に設定された場所から JWKS ファイルをロードします。JWT に JWKS ファイルにない "kid" ヘッダー値が含まれている場合、ブローカーは JWT を拒否し、認証は失敗します。
sasl.oauthbearer.token.endpoint.url
型: string
デフォルト: null
重要度: 中
OAuth/OIDCID プロバイダーの URL。URL が HTTP(S) ベースの場合、sasl.jaas.config の設定に基づいてログインリクエストが行われるのは、issuer のトークンエンドポイント URL です。URL がファイルベースの場合、認証に使用するために OAuth/OIDC ID プロバイダーによって発行されたアクセストークン (JWT シリアル化形式) を含むファイルを指定します。
security.protocol
型: string
デフォルト: PLAINTEXT
有効な値: (大文字と小文字の区別なし) [SASL_SSL, PLAINTEXT, SSL, SASL_PLAINTEXT]
重要度: 中
ブローカーとの通信に使用されるプロトコル。有効な値は、PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL です。
send.buffer.bytes
型: int
デフォルト: 131072 (128 キビバイト)
有効な値: [-1,…]
重要度: 中
データの送信時に使用する TCP 送信バッファー (SO_SNDBUF) のサイズ。値が -1 の場合、OS のデフォルトが使用されます。
socket.connection.setup.timeout.max.ms
型: long
デフォルト: 30000 (30 秒)
重要度: 中
ソケット接続が確立されるまでクライアントが待機する最大時間。接続設定のタイムアウトは、連続して接続に失敗するたびに、この最大値まで指数関数的に増加します。接続ストームを回避するために、タイムアウトに 0.2 のランダム化ファクターが適用され、計算された値よりも 20% 未満と 20% 超の間にランダムな範囲が発生します。
socket.connection.setup.timeout.ms
型: long
デフォルト: 10000 (10 秒)
重要度: 中
ソケット接続が確立されるまでクライアントが待機する時間。タイムアウトが経過する前に接続が構築されない場合、クライアントはソケットチャネルを閉じます。この値は初期バックオフ値であり、連続して接続に失敗するたびに、最大で
socket.connection.setup.timeout.max.ms
の値まで指数関数的に増加します。ssl.enabled.protocols
型: list
デフォルト: TLSv1.2,TLSv1.3
重要度: 中
SSL 接続で有効なプロトコルの一覧。Java 11 以降で実行する場合、デフォルトは 'TLSv1.2,TLSv1.3' で、それ以外の場合は 'TLSv1.2' になります。Java 11 のデフォルト値では、クライアントとサーバーの両方が TLSv1.3 をサポートする場合は TLSv1.3 を優先し、そうでない場合は TLSv1.2 にフォールバックします (両方が少なくとも TLSv1.2 をサポートすることを前提とします)。ほとんどの場合、このデフォルトは問題ありません。
ssl.protocol
の設定ドキュメントも参照してください。ssl.keystore.type
型: string
デフォルト: JKS
重要度: 中
キーストアファイルのファイル形式。これはクライアントにとってオプションになります。現在、デフォルトの
ssl.engine.factory.class
でサポートされている値は [JKS、PKCS12、PEM] です。ssl.protocol
型: string
デフォルト: TLSv1.3
重要度: 中
SSLContext の生成に使用される SSL プロトコル。Java 11 以降で実行する場合、デフォルトは 'TLSv1.3' になります。それ以外の場合は 'TLSv1.2' になります。この値は、ほとんどのユースケースで問題ありません。最近の JVM で許可される値は 'TLSv1.2' および 'TLSv1.3' です。'TLS'、'TLSv1.1'、'SSL'、'SSLv2'、および 'SSLv3' は古い JVM でサポートされる可能性がありますが、既知のセキュリティー脆弱性のために使用は推奨されません。この設定のデフォルト値および 'ssl.enabled.protocols' では、サーバーが 'TLSv1.3' に対応していない場合は、クライアントは 'TLSv1.2' にダウングレードされます。この設定が 'TLSv1.2' に設定されている場合、'TLSv1.3' が ssl.enabled.protocols の値の 1 つで、サーバーが 'TLSv1.3' のみをサポートする場合でも、クライアントは 'TLSv1.3' を使用しません。
ssl.provider
型: string
デフォルト: null
重要度: 中
SSL 接続に使用されるセキュリティープロバイダーの名前。デフォルト値は JVM のデフォルトのセキュリティープロバイダーです。
ssl.truststore.type
型: string
デフォルト: JKS
重要度: 中
トラストストアファイルのファイル形式。現在、デフォルトの
ssl.engine.factory.class
でサポートされている値は [JKS、PKCS12、PEM] です。auto.commit.interval.ms
型: int
デフォルト: 5000 (5 秒)
有効な値: [0,…]
重要度: 低
enable.auto.commit
がtrue
に設定されている場合にコンシューマーオフセットが Kafka に自動コミットされる頻度 (ミリ秒単位)。auto.include.jmx.reporter
型: boolean
デフォルト: true
重要度: 低
非推奨。JmxReporter が
metric.reporters
にリストされていない場合でも、自動的に含めるかどうか。この設定は Kafka 4.0 で削除される予定です。JmxReporter を有効にするには、代わりにorg.apache.kafka.common.metrics.JmxReporter
をmetric.reporters
に含める必要があります。check.crcs
型: boolean
デフォルト: true
重要度: 低
消費されたレコードの CRC32 を自動的に確認します。これにより、メッセージのネットワーク上またはディスク上の破損が発生しなくなります。このチェックはオーバーヘッドを追加するため、極端なパフォーマンスを求める場合は無効になる可能性があります。
client.id
型: string
デフォルト: ""
重要度: 低
要求の実行時にサーバーに渡す ID 文字列。この目的は、サーバー側の要求ロギングに論理アプリケーション名を含めることを許可することにより、ip/port の他にもリクエストのソースを追跡できるようにすることです。
client.rack
型: string
デフォルト: ""
重要度: 低
このクライアントのラック識別子。これには、このクライアントが物理的に存在する場所を示す任意の文字列値を指定できます。ブローカー設定 'broker.rack' に対応します。
enable.metrics.push
型: boolean
デフォルト: true
重要度: 低
クラスターにクライアントと一致するクライアントメトリクスサブスクリプションがある場合に、クラスターへのクライアントメトリクスのプッシュを有効にするかどうか。
fetch.max.wait.ms
型: int
デフォルト: 500
有効な値: [0,…]
重要度: 低
fetch.min.bytes で指定された要件をすぐに満たすために十分なデータがない場合に、サーバーがフェッチ要求に応答するまでにブロックする最大時間。
interceptor.classes
型: list
デフォルト: ""
有効な値: null 以外の文字列
重要度: 低
インターセプターとして使用するクラスのリスト。
org.apache.kafka.clients.consumer.ConsumerInterceptor
インターフェイスを実装すると、コンシューマーによって受信されるレコードを傍受 (場合によっては変更) できます。デフォルトでは、インターセプターはありません。metadata.max.age.ms
型: long
デフォルト: 300000 (5 分)
有効な値: [0,…]
重要度: 低
新しいブローカーまたはパーティションをプロアクティブに検出するためのパーティションリーダーシップの変更がない場合でも、メタデータの更新を強制するまでの期間 (ミリ秒単位)。
metric.reporters
型: list
デフォルト: ""
有効な値: null 以外の文字列
重要度: 低
メトリクスレポーターとして使用するクラスの一覧。
org.apache.kafka.common.metrics.MetricsReporter
インターフェイスを実装すると、新しいメトリックの作成が通知されるクラスのプラグが可能になります。JmxReporter は、JMX 統計を登録するために常に含まれます。metrics.num.samples
型: int
デフォルト: 2
有効な値: [1,…]
重要度: 低
メトリクスを計算するために保持されるサンプルの数。
metrics.recording.level
型: string
デフォルト: INFO
有効な値: [INFO, DEBUG, TRACE]
重要度: 低
メトリックの最も高い記録レベル。
metrics.sample.window.ms
型: long
デフォルト: 30000 (30 秒)
有効な値: [0,…]
重要度: 低
メトリックサンプルが計算される時間枠。
reconnect.backoff.max.ms
型: long
デフォルト: 1000 (1 秒)
有効な値: [0,…]
重要度: 低
接続に繰り返し失敗したブローカーへの再接続時に待機する最大時間 (ミリ秒単位)。これが指定されている場合、ホストごとのバックオフは、連続して接続に失敗するたびに、この最大値まで指数関数的に増加します。バックオフの増加を計算した後、コネクションストームを回避するために 20% のランダムなジッターが追加されます。
reconnect.backoff.ms
型: long
デフォルト: 50
有効な値: [0,…]
重要度: 低
特定のホストへの再接続を試みる前の基本的な待機時間。これにより、タイトなループでホストに繰り返し接続することを回避します。このバックオフは、クライアントによるブローカーへのすべての接続試行に適用されます。この値は初期バックオフ値であり、連続して接続に失敗するたびに、最大で
reconnect.backoff.max.ms
の値まで指数関数的に増加します。retry.backoff.max.ms
型: long
デフォルト: 1000 (1 秒)
有効な値: [0,…]
重要度: 低
繰り返し失敗したブローカーへの要求を再試行するときに待機する最大時間 (ミリ秒)。指定した場合、クライアントごとのバックオフは、要求が失敗するたびにこの最大値まで指数関数的に増加します。再試行時にすべてのクライアントが同期されないように、バックオフには係数 0.2 のランダム化されたジッターが適用されます。その結果、バックオフは計算値より 20% 低い値と 20% 高い値の間になります。
retry.backoff.ms
がretry.backoff.max.ms
よりも大きく設定されている場合は、指数関数的に増加することなく、最初からretry.backoff.max.ms
が定数バックオフとして使用されます。retry.backoff.ms
型: long
デフォルト: 100
有効な値: [0,…]
重要度: 低
特定のトピックパーティションに対して失敗したリクエストを再試行するまでの待機時間。これにより、一部の障害シナリオでタイトループでリクエストを繰り返し送信することを回避できます。この値は初期バックオフ値であり、要求が失敗するたびに、最大で
retry.backoff.max.ms
の値まで指数関数的に増加します。sasl.kerberos.kinit.cmd
型: string
デフォルト:/usr/bin/kinit
重要度: 低
Kerberos kinit コマンドパス。
sasl.kerberos.min.time.before.relogin
型: long
デフォルト: 60000
重要度: 低
更新試行間のログインスレッドのスリープ時間。
sasl.kerberos.ticket.renew.jitter
型: double
デフォルト: 0.05
重要度: 低
更新時間に追加されたランダムなジッターの割合。
sasl.kerberos.ticket.renew.window.factor
型: double
デフォルト: 0.8
重要度: 低
ログインスレッドは、最後の更新からチケットの有効期限までの指定された時間のウィンドウファクターに達するまでスリープし、その時点でチケットの更新を試みます。
sasl.login.connect.timeout.ms
型: int
デフォルト: null
重要度: 低
外部認証プロバイダーの接続タイムアウト用の (オプションの) 値 (ミリ秒単位)。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.read.timeout.ms
型: int
デフォルト: null
重要度: 低
外部認証プロバイダーの読み取りタイムアウト用の (オプションの) 値 (ミリ秒単位)。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.refresh.buffer.seconds
型: short
デフォルト: 300
有効な値: [0,…,3600]
重要度: 低
クレデンシャルを更新するときに維持するクレデンシャルの有効期限が切れるまでのバッファー時間 (秒単位)。更新が、バッファー秒数よりも有効期限に近いときに発生する場合、更新は、バッファー時間をできるだけ維持するために前倒しで行われます。設定可能な値は 0 から 3600 (1 時間) です。値を指定しない場合は、デフォルト値の 300 (5 分) が使用されます。この値と sasl.login.refresh.min.period.seconds の合計が、クレデンシャルの残りの有効期間を超える場合は、両方とも無視されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.refresh.min.period.seconds
型: short
デフォルト: 60
有効な値: [0,…,900]
重要度: 低
ログイン更新スレッドがクレデンシャルを更新する前に待機する最小時間 (秒単位)。設定可能な値は 0 から 900 (15 分) です。値を指定しない場合は、デフォルト値の 60 (1 分) が使用されます。この値と sasl.login.refresh.buffer.seconds の合計が、クレデンシャルの残りの有効期間を超える場合は、両方とも無視されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.refresh.window.factor
型: double
デフォルト: 0.8
有効な値: [0.5,…,1.0]
重要度: 低
ログイン更新スレッドは、クレデンシャルの有効期間との関連で指定の期間ファクターに達するまでスリープ状態になり、達成した時点でクレデンシャルの更新を試みます。設定可能な値は 0.5 (50%) から 1.0 (100%) までです。値が指定されていない場合、デフォルト値の 0.8 (80%) が使用されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.refresh.window.jitter
型: double
デフォルト: 0.05
有効な値: [0.0,…,0.25]
重要度: 低
ログイン更新スレッドのスリープ時間に追加されるクレデンシャルの存続期間に関連するランダムジッターの最大量。設定可能な値は 0 から 0.25 (25%) です。値が指定されていない場合は、デフォルト値の 0.05 (5%) が使用されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.retry.backoff.max.ms
型: long
デフォルト: 10000 (10 秒)
重要度: 低
外部認証プロバイダーへのログイン試行間における最大待機時間の (オプションの) 値 (ミリ秒単位)。ログインでは、指数関数バックオフアルゴリズムが使用され、初期待機時間は sasl.login.retry.backoff.ms 設定に基づき、試行間の待機時間は 2 倍になり、最大待機時間は sasl.login.retry.backoff.max.ms 設定に基づき、指定されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.login.retry.backoff.ms
型: long
デフォルト: 100
重要度: 低
外部認証プロバイダーへのログイン試行間における初期待機用の (オプションの) 値 (ミリ秒単位)。ログインでは、指数関数バックオフアルゴリズムが使用され、初期待機時間は sasl.login.retry.backoff.ms 設定に基づき、試行間の待機時間は 2 倍になり、最大待機時間は sasl.login.retry.backoff.max.ms 設定に基づき、指定されます。現在は、OAUTHBEARER にのみ適用されます。
sasl.oauthbearer.clock.skew.seconds
型: int
デフォルト: 30
重要度: 低
OAuth/OIDC ID プロバイダーとブローカーの時間の差を考慮した秒単位の (オプションの) 値。
sasl.oauthbearer.expected.audience
型: list
デフォルト: null
重要度: 低
JWT が想定される対象者の 1 つに対して発行されたことを確認するためにブローカーが使用する (オプションの) コンマ区切りの設定です。JWT は標準的な OAuth の "aud" クレームについて検査され、この値が設定されている場合、ブローカーは JWT の "aud" クレームから値が完全に一致するかどうかを確認するために照合します。一致するものがない場合、ブローカーは JWT を拒否し、認証は失敗します。
sasl.oauthbearer.expected.issuer
型: string
デフォルト: null
重要度: 低
想定される issuer によって JWT が作成されたことを確認するためにブローカーが使用する (オプションの) 設定。JWT は標準の OAuth "iss" クレームについて検査され、この値が設定されている場合、ブローカーは JWT の "iss" クレームにあるものと正確に照合します。一致するものがない場合、ブローカーは JWT を拒否し、認証は失敗します。
sasl.oauthbearer.jwks.endpoint.refresh.ms
型: long
デフォルト: 3600000 (1 時間)
重要度: 低
ブローカーが JWT の署名を検証するためのキーを含む JWKS (JSON Web Key Set) キャッシュを更新するまで待機するミリ秒単位の (オプションの) 値。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
型: long
デフォルト: 10000 (10 秒)
重要度: 低
外部認証プロバイダーから JWKS (JSON Web Key Set) を取得する試行間における最大待機時間の (オプションの) 値 (ミリ秒単位)。JWKS の取得では、sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 設定に基づく初期待機を伴う指数関数バックオフアルゴリズムが使用され、sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 設定で指定された最大待機時間まで試行間の待機時間が 2 倍になります。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
型: long
デフォルト: 100
重要度: 低
外部認証プロバイダーからの JWKS (JSON Web Key Set) の取得試行間における初期待機の (オプションの) 値 (ミリ秒単位)。JWKS の取得では、sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 設定に基づく初期待機を伴う指数関数バックオフアルゴリズムが使用され、sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 設定で指定された最大待機時間まで試行間の待機時間が 2 倍になります。
sasl.oauthbearer.scope.claim.name
型: string
デフォルト: scope
重要度: 低
スコープの OAuth クレームは "スコープ" と呼ばれることがよくありますが、OAuth/OIDC プロバイダーがそのクレームに別の名前を使用する場合、この (オプションの) 設定は JWT ペイロードのクレームに含まれるスコープに使用する別の名前を提供できます。
sasl.oauthbearer.sub.claim.name
型: string
デフォルト: sub
重要度: 低
サブジェクトの OAuth クレームは "sub" と呼ばれることがよくありますが、この (オプションの) 設定は、OAuth/OIDC プロバイダーがそのクレームに別の名前を使用する場合、JWT ペイロードのクレームに含まれるサブジェクトに使用する別の名前を提供できます。
security.providers
型: string
デフォルト: null
重要度: 低
設定可能なクリエータークラスのリストで、それぞれがセキュリティーアルゴリズムを実装するプロバイダーを返します。これらのクラスは
org.apache.kafka.common.security.auth.SecurityProviderCreator
インターフェイスを実装する必要があります。ssl.cipher.suites
型: list
デフォルト: null
重要度: 低
暗号化スイートの一覧。これは、TLS または SSL ネットワークプロトコルを使用してネットワーク接続のセキュリティー設定をネゴシエートするために使用される認証、暗号化、MAC、および鍵交換アルゴリズムの名前付きの組み合わせです。デフォルトでは、利用可能なすべての暗号スイートがサポートされます。
ssl.endpoint.identification.algorithm
型: string
デフォルト: https
重要度: 低
サーバー証明書を使用してサーバーのホスト名を検証するエンドポイント識別アルゴリズム。
ssl.engine.factory.class
型: class
デフォルト: null
重要度: 低
SSLEngine オブジェクトを提供する org.apache.kafka.common.security.auth.SslEngineFactory タイプのクラス。デフォルト値は org.apache.kafka.common.security.ssl.DefaultSslEngineFactory です。あるいは、これを org.apache.kafka.common.security.ssl.CommonNameLoggingSslEngineFactory に設定すると、クライアントがいずれかのブローカーでの認証に使用する期限切れ SSL 証明書のコモンネームが、ログレベル INFO で記録されます。この場合、mTLS クライアントからブローカーへの新しい接続を確立する際に、クライアントが提供した証明書チェーンを調べるための追加コードが原因で、わずかに遅延が発生することに注意してください。さらに、実装では標準の Java トラストストアに基づくカスタムトラストストアが使用されます。したがって、標準のトラストストアほど成熟しておらず、セキュリティーリスクとみなされる可能性があることに注意してください。
ssl.keymanager.algorithm
型: string
デフォルト: SunX509
重要度: 低
SSL 接続のキーマネージャーファクトリーによって使用されるアルゴリズム。デフォルト値は、Java 仮想マシンに設定されたキーマネージャーファクトリーアルゴリズムです。
ssl.secure.random.implementation
型: string
デフォルト: null
重要度: 低
SSL 暗号操作に使用する SecureRandom PRNG 実装。
ssl.trustmanager.algorithm
型: string
デフォルト: PKIX
重要度: 低
SSL 接続のトラストマネージャーファクトリーによって使用されるアルゴリズム。デフォルト値は、Java 仮想マシンに設定されたトラストマネージャーファクトリーアルゴリズムです。