ベストプラクティスのガイドライン
このセクションでは、この認定資格から得られた教訓について説明します。
-
検証に基づくと、 S3 オブジェクトストレージにはデータを格納するのがベストプラクティスです。
-
高スループットの SAN (特に FC )を使用して、ブローカーのホットデータやローカルディスクを保持できます。これは、階層型ストレージの構成が流暢であるためです。 ブローカーデータディレクトリに格納されているデータのサイズは、オブジェクトストレージにデータが移動される際のセグメントサイズと保持時間に基づいています。
-
オブジェクトストレージは、セグメントの方がパフォーマンスに優れています。バイト数が多い場合は 512 MB をテストしました。
-
Kafka では、トピックに対して生成される各レコードのキーまたは値の長さ(バイト単位)は、「 length.key.value 」パラメータによって制御されます。StorageGRID では、 S3 オブジェクトの取り込みと読み出しのパフォーマンスがより高い値に引き上げられました。たとえば、 512 バイトが 5.8GBps の読み出しを提供し、 1024 バイトが 7.5GBps の s3 読み出しを提供し、 2048 バイトが 10Gbps 近く提供します。
次の図に、「 length.key.value 」に基づいた S3 オブジェクトの取り込みと読み出しを示します。
-
* Kafka のチューニング。 * 階層型ストレージのパフォーマンスを向上させるには、 TierFetcherNumThreads と TierArchiverNumThreads を増やします。一般的なガイドラインとして、 TierFetcherNumThreads を増やして物理 CPU コア数に合わせ、 TierArchiverNumThreads を CPU コア数の半分に増やします。たとえば、サーバープロパティで、 8 つの物理コアを持つマシンがある場合、 conflicent.tier.fetcher.threads=8 と、 conflicent.tier.Archiver .num.threads=4 を設定します。
-
* トピックが削除されるまでの時間です。 * トピックが削除されると、オブジェクトストレージ内のログセグメントファイルの削除はすぐには開始されません。デフォルト値の 3 時間を指定した時間間隔が設定されているため、この時間が経過するとファイルが削除されます。この間隔の値を変更するには、設定 confluent.tier.topic.delete.check.interval.ms を変更します。トピックまたはクラスタを削除する場合は、それぞれのバケット内のオブジェクトを手動で削除することもできます。
-
* 階層型ストレージの内部トピックに関する ACL 。 * オンプレミス環境に推奨されるベストプラクティスは、階層型ストレージに使用される内部トピックについて、 ACL 承認者を有効にすることです。このデータへのアクセスをブローカーユーザのみに制限するには、 ACL ルールを設定してください。これにより、内部トピックが保護され、階層化されたストレージデータおよびメタデータへの不正アクセスを防止できます。
kafka-acls --bootstrap-server localhost:9092 --command-config adminclient-configs.conf \ --add --allow-principal User:<kafka> --operation All --topic "_confluent-tier-state"
ユーザ「 <Kafka> 」を、導入環境の実際のブローカプリンシパルに置き換えます。 |
たとえば ' コマンド confliclus-tier-state は ' 階層型ストレージの内部トピックに ACL を設定します現在、階層化ストレージに関連する内部トピックは 1 つだけです。この例では、内部トピックのすべての処理にプリンシパル Kafka 権限を提供する ACL を作成しています。