付録B トピック設定パラメーター

cleanup.policy

type: list
デフォルト: delete
有効な値を削除します: [compact, delete]
Server Default Property: log.cleanup.policy
Importance: medium

"delete" または "compact"(両文字列)のいずれかである文字列。この文字列は、古いログセグメントで使用する保持ポリシーを指定します。デフォルトのポリシー(delete)は、保持期間またはサイズ制限に達した場合に古いセグメントを破棄します。「 comact」設定は、トピックの ログコンパクション が有効になります。

compression.type

型: 文字列
デフォルト: プロデューサー
有効な値: [uncompressed, zstd, lz4, snappy, gzip, producer]
Server Default Property: compression.type
Importance: medium

特定のトピックの最終圧縮タイプを指定します。この設定では、標準の圧縮コーデック('gzip'、'snappy'、'lz4'、'zstd')を受け入れます。また、圧縮なしでの 'uncompressed' および 'producer' を受け入れます。これは、プロデューサーによって設定された元の圧縮コード c を保持します。

delete.retention.ms

Type: long
Default: 86400000(1 day)
有効な値: [0,…​]
Server Default Property: log.cleaner.delete.retention.ms
Importance: medium

ログコンパクションされたトピック の削除トゥームストーンのマーカーを保持する時間。この設定は、オフセット 0 から開始して、最終ステージの有効なスナップショットを取得する場合にコンシューマーが読み取りを完了する必要のある時間にバインドし、それらのスキャンの完了前に廃棄します。

file.delete.delay.ms

Type: long
Default: 60000(1 分)
有効な値: [0,…​]
Server Default Property: log.segment.delete.delay.ms
Importance: medium

ファイルシステムからファイルを削除するまでの待機時間。

flush.messages

タイプ: long
デフォルト: 9223372036854775807
有効な値 [ 0, …​]
server Default Property: log.flush.interval.messages
Importance: medium

この設定により、ログに書き込まれたデータの fsync を強制する間隔を指定できます。たとえば、これがすべてのメッセージの後に fsync を指定した場合は、5 つのメッセージ以降は 5 回は fsync になります。通常、これは設定せず、耐久性を確保し、オペレーティングシステムのバックグラウンドフラッシュ機能を効率化することが推奨されます。この設定は、トピックごとに上書きできます(トピックごとの 設定についてのセクションを参照してください)。

flush.ms

タイプ: long
デフォルト: 9223372036854775807
有効な値 [ 0, …​]
サーバーのデフォルトプロパティー: log.flush.interval.ms
Importance: medium

この設定により、ログに書き込まれたデータの fsync を強制する期間を指定できます。たとえば、これが 1000 ミリ秒が経過した後に fsync を 1000 ミリ秒に設定します。通常、これは設定せず、耐久性を確保し、オペレーティングシステムのバックグラウンドフラッシュ機能を効率化することが推奨されます。

follower.replication.throttled.replicas

タイプ: list
デフォルト: ""
有効な値: [partitionId],[brokerId]:[brokerId],[brokerId], …​
サーバーデフォルトプロパティー: follower.replication.throttled.replicas
ImportanceImportance: medium

ログレプリケーションがフォロワー側でスロットリングされる必要があるレプリカの一覧。この一覧は、[PartitionId]:[BrokerId],[BrokerId]:[BrokerId]:…​ の形式でレプリカのセットを記述するか、ワイルドカード '*' を使用して、このトピックのすべてのレプリカにスロットリングできます。

index.interval.bytes

型: int
デフォルト: 4096(4 kibibytes)
有効な値 [ 0,…​]
Server Default Property: log.index.interval.bytes
Importance: medium

この設定は、Kafka がインデックスエントリーをそのオフセットインデックスに追加する頻度を制御します。デフォルト設定では、4096 バイトごとにメッセージをインデックス化します。インデックスが多いと、読み取りはログの正確な位置にジャンプできますが、インデックスが大きくなるようにします。これを変更する必要はありません。

leader.replication.throttled.replicas

タイプ: list
デフォルト: ""
有効な値: [partitionId],[brokerId]:[brokerId],[brokerId], …​
サーバーデフォルトプロパティー: leader.replication.throttled.replicas
Importance: medium

ログレプリケーションがリーダー側でスロットリングされる必要があるレプリカの一覧。この一覧は、[PartitionId]:[BrokerId],[BrokerId]:[BrokerId]:…​ の形式でレプリカのセットを記述するか、ワイルドカード '*' を使用して、このトピックのすべてのレプリカにスロットリングできます。

max.compaction.lag.ms

Type: long
Default: 9223372036854775807
有効な値 [ 1,…​]
Server Default Property: log.cleaner.max.compaction.lag.ms
importance: medium

メッセージはログ内で圧縮できない最大時間。圧縮されているログにのみ適用可能です。

max.message.bytes

type: int
デフォルト: 1048588
有効な値 [ 0,…​]
Server Default Property: message.max.bytes
Importance: medium

Kafka で許可される最大レコードバッチサイズ(圧縮が有効な場合の圧縮後)。これが増加され、0.10.2 よりも古いコンシューマーがある場合、コンシューマーのフェッチサイズも拡張し、この大量に記録できるようにします。最新のメッセージ形式バージョンでは、レコードは常にバッチにグループ化され、効率性を確保します。以前のメッセージ形式のバージョンでは、圧縮されていないレコードはバッチにグループ化されず、この制限はその場合の単一レコードにのみ適用されます。

message.format.version

型: string
デフォルト: 2.7-IV2
有効な値: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV0, 0.10.0-IV1, 0.10.1-IV0, 0.10.1-IV0 0.10.1-IV2, 0.10.2-IV0, 0.11.0-IV0, 0.11.0-IV1, 0.11.0-IV2, 1.0-IV0, 1.1-IV0, 2.0-IV0, 2.1-IV0、3IV0-IV0-IV0 2.7-IV0, 2.7-IV1, 2.7-IV2]
Server Default Property: log.message.format.version
Importance: medium

ブローカーがログにメッセージを追加するのに使用するメッセージ形式のバージョンを指定します。値は有効な ApiVersion である必要があります。例としては、0.8.2、0.9.0.0、0.10.0 などがあります。詳細は、ApiVersion を参照してください。特定のメッセージ形式のバージョンを設定することで、ディスク上の既存のメッセージがすべて、指定されたバージョンよりも小さくなることが認定されています。この値を誤って設定すると、コンシューマーが認識しない形式のメッセージを受信してしまうため、古いバージョンのコンシューマーが破損することになります。

message.timestamp.difference.max.ms

タイプ: long
デフォルト: 9223372036854775807
有効な値 [ 0, …​]
server Default Property: log.message.timestamp.difference.max.ms
Importance: medium

ブローカーがメッセージとメッセージを受け取ると、タイムスタンプとメッセージに指定されたタイムスタンプの間の最大差。message.timestamp.type=CreateTime の場合、タイムスタンプの差異がこのしきい値を超えるとメッセージは拒否されます。この構成は、message.timestamp.type=LogAppluatex の場合に無視されます。

message.timestamp.type

Type: string
デフォルト: CreateTime
有効な値: [CreateTime, LogApp the]
Server Default Property: log.message.timestamp.type
importance: medium

メッセージのタイムスタンプが create time であるか、またはログの追加時間であるかを定義します。値は CreateTime または LogAppendTime のいずれかでなければなりません。

min.cleanable.dirty.ratio

Type: double
Default: 0.5
Valid Values: [0,…​,1]
Server Default Property: log.cleaner.min.cleanable.ratio
Importance: medium

この設定では、ログコンパクターがログの消去を試行する頻度を制御します( ログコンパクション が有効になっていることを前提とします)。デフォルトでは、ログの 50% を超えるログのクリーニングを防ぎます。この比率は、重複してログに最大領域がバインドされます(ログの 50% は最大で 50% になる可能性がありました)。比率が大きいほど、より効率的なクリーニングが行われますが、ログの領域がさらに多くなります。max.compaction.lag.ms 設定または min.compaction.lag.ms 設定も指定された場合、ログコンパクターも、ダーティー率のしきい値が満たされ、ログにはダーティー率のしきい値が満たされ、ログが min.compaction.lagms の期間と即座に圧縮できると見えます。 または、ほとんどの max.compaction.lag.ms の期間にログにダーティー(複雑でない)レコードがある場合。

min.compaction.lag.ms

Type: long
デフォルト: 0
有効な値: [0,…​]
Server Default Property: log.cleaner.min.compaction.lag.ms
Importance: medium

メッセージがログに記録されない最小の時間。圧縮されているログにのみ適用可能です。

min.insync.replicas

型: int
デフォルト: 1
有効な値: [1,…​]
Server Default Property: min.insync.replicas
Importance: medium

プロデューサーが acks を「all」(または「-1」)に設定すると、この設定で書き込みが成功したとみなされる必要のあるレプリカの最小数を指定します。この最小値が満たされない場合、プロデューサーは例外を送出します(NotEnoughReplicas または NotEnoughReplicasAfterAppend)。一緒に使用すると、min.insync.replicasacks を使用すると、耐久性の高い保証を実施することができます。典型的なシナリオは、レプリケーション係数 3 でトピックを作成し、min.insync.replicas を 2 に設定し、acks の「all」で作成します。これにより、多くのレプリカが書き込みを受信しない場合にプロデューサーが例外を発生するようになります。

preallocate

型: ブール値
デフォルト: false
Server Default Property: log.preallocate
Importance: medium

新しいログセグメントの作成時にディスクにファイルを事前に割り当てた場合には True。

retention.bytes

型: long
デフォルト: -1
Server デフォルトプロパティ: log.retention.bytes
Importance: medium

この設定では、「delete」保持ポリシーを使用している場合に、古いログセグメントを破棄する前にパーティションを拡張できるように、パーティションの最大サイズを制御します。デフォルトでは、サイズ制限は制限されません。この制限はパーティションレベルで実施されるため、パーティションの数で乗算して、トピックの保持(バイト単位)を計算します。

retention.ms

型: long
デフォルト: 604800000(7 days)
有効な値: [-1,…​]
Server Default Property: log.retention.ms
Importance: medium

この設定では、「delete」保持ポリシーを使用している場合には、古いログセグメントを破棄する前にログを保持する最大時間を制御します。これは、コンシューマーがデータを読み取れる必要があるかについての SLA を表します。-1 に設定すると、時間制限は適用されません。

segment.bytes

型: int
デフォルト: 1073741824(1 gibibyte)
有効な値 [ 14, …​]
サーバーのデフォルトプロパティー: log.segment.bytes
Importance: medium

この設定では、ログのセグメントファイルサイズを制御します。保持期間とクリーニングは常にファイルが実行されるため、より大きなセグメントサイズはファイルより少なくなりますが、保持に対する詳細な制御が低くなります。

segment.index.bytes

type: int
デフォルト: 10485760(10 mebibytes)
有効な値 [ 0,…​]
Server Default Property: log.index.size.max.bytes
Importance: medium

この設定では、オフセットをファイルの位置にマップするインデックスのサイズを制御します。このインデックスファイルに事前割り当てを行い、ログのロール後にのみ縮小します。通常、この設定を変更する必要はありません。

segment.jitter.ms

型: long
デフォルト: 0
有効な値: [0,…​]
Server Default Property: log.roll.jitter.ms
Importance: medium

スケジュールされたセグメントのゼロ時間からランダムのジッターで引き出された最大のジッターは、セグメントのゲームメンテーションを防ぎます。

segment.ms

型: long
デフォルト: 604800000(7 days)
有効な値: [1,…​]
Server Default Property: log.roll.ms
Importance: medium

この設定では、セグメントファイルが満杯になっても、保持が古いデータを削除またはコンパクトにするために、Kafka が強制的にロールバックする期間を制御します。

unclean.leader.election.enable

Type: boolean
デフォルト: false
Server Default Property: unclean.leader.election.enable
Importance: medium

ISR が設定されていないレプリカを、最後の手段としてリーダーとして選択するようにし、データが失われる可能性があるかどうかを示します。

message.downconversion.enable

型: ブール値
デフォルト:
true
Server のデフォルト Property: log.message.downconversion.enable
Importance: low

この設定は、リクエストを消費するために、ダウンコンバートバージョンのメッセージ形式が有効になっているかどうかを制御します。false に設定すると、古いメッセージ形式を必要とするコンシューマーに対してブローカーはダウンコンバートを実行しません。このような古いクライアントからの要求を消費するため、ブローカーは UNSUPPORTED_VERSION エラーで応答します。この設定は、レプリケーションのフォロワーに必要となる可能性のあるメッセージ形式の変換には適用されません。