第13章 ブローカーのスループットおよびストレージ制限の設定
この手順では、Kafka クラスター内のブローカーにスループットおよびストレージの制限を設定する方法を説明します。Strimzi Quotas プラグインを有効にし、quota プロパティーを使用して制限を設定します。
このプラグインは、ストレージ使用率クォータとスループット制限の動的な分散を提供します。
-
ストレージクォータは、ディスクストレージの使用率に基づいて Kafka プロデューサーを制限します。制限は、バイト数 (
storage.per.volume.limit.min.available.bytes) または使用可能なディスク領域に占めるパーセンテージ (storage.per.volume.limit.min.available.ratio) で指定でき、各ディスクに個別に適用されます。クラスター内のブローカーが設定されたディスクしきい値を超えると、ディスクがすぐにいっぱいになって容量を超えないように、クライアントが調整されます。 - 合計スループット制限は、すべてのクライアント間で動的に分散されます。たとえば、プロデューサーのバイトレートしきい値を 40 MBps に設定した場合、2 つのプロデューサー間で分散が動的に実行されます。一方のプロデューサーが 10 MBps を使用している場合、もう一方は最大 30 MBps を使用できます。
- 特定のユーザー (クライアント) を制限から除外することができます。
プラグインを使用すると、クライアントごとのメトリクスではなく、集計されたクォータメトリクスのみが表示されます。
前提条件
- Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
手順
Kafka 設定プロパティーファイルを編集します。
プラグイン設定の例
# ... client.quota.callback.class=io.strimzi.kafka.quotas.StaticQuotaCallback1 client.quota.callback.static.produce=10000002 client.quota.callback.static.fetch=10000003 client.quota.callback.static.storage.per.volume.limit.min.available.bytes=5000000000004 client.quota.callback.static.storage.check-interval=55 client.quota.callback.static.kafka.admin.bootstrap.servers=localhost:90926 client.quota.callback.static.excluded.principal.name.list=User:my-user-1;User:my-user-27 # ...- 1
- プラグインをロードします。
- 2
- プロデューサーのバイトレートしきい値を 1 MBps に設定します。
- 3
- コンシューマーのバイトレートしきい値を設定します。1 MBps。
- 4
- 使用可能なバイト制限を 500 GB に設定します。
- 5
- ストレージのチェック間隔を 5 秒に設定します。デフォルトは 60 秒です。チェックを無効にするには、このプロパティーを 0 に設定します。
- 6
- Kafka クラスターブートストラップサーバーのアドレス。
storage.check-intervalが 0 より大きい場合、このプロパティーは必須です。client.quota.callback.static.kafka.admin.接頭辞で始まるすべての設定プロパティーが、Kafka Admin クライアント設定に渡されます。 - 7
my-user-1とmy-user-2を制限から除外します。各プリンシパルにUser:という接頭辞を付ける必要があります。
storage.per.volume.limit.min.available.bytesとstorage.per.volume.limit.min.available.ratioは相互に排他的です。これらのパラメーターのうち 1 つだけを設定します。注記サポートされている設定プロパティーの完全なリストは、プラグインのドキュメント に記載されています。
デフォルトの設定ファイルで Kafka ブローカーを起動します。
./bin/kafka-server-start.sh -daemon ./config/kraft/server.propertiesKafka ブローカーが稼働していることを確認します。
jcmd | grep Kafka