Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

サイジング

共同作成者

Kafka サイジングは、シンプル、きめ細かい、リバース、およびパーティションの 4 つの構成モードで実行できます。

シンプル

シンプルモードは、 Apache Kafka を初めて使用するユーザや初期状態のユースケースに適しています。このモードでは、スループット MBps 、読み取りファンアウト、保持、リソース利用率(デフォルトは 60% )などの要件を指定します。オンプレミス(ベアメタル、 VMware 、 Kubernetes 、 OpenStack )やクラウドなどの環境にも移行できます。Kafka クラスタのサイジングは、この情報に基づいて、ブローカーに必要なサーバ数、 Zookeeper 、 Apache Kafka Connect Workers 、スキーマレジストリ、 REST プロキシ、 ksqlDB 、および Conluent コントロールセンターを提供します。

階層型ストレージの場合、 Kafka クラスタのサイジングのためのきめ細かい構成モードを検討してください。Granular モードは、経験豊富な Apache Kafka ユーザや明確に定義されたユースケースに適しています。このセクションでは、プロデューサ、ストリームプロセッサ、およびコンシューマのサイジングについて説明します。

プロデューサー

Apache Kafka の開発者(ネイティブクライアント、 REST プロキシ、 Kafka コネクタなど)については、次の情報を参照してください。

  • * 名前。 * Spark 。

  • * 開発者の種類。 * アプリケーションまたはサービス、プロキシ (REST 、 MQTT 、その他 ) 、および既存のデータベース (RDBMS, NoSQL 、その他 ) 。「わからない」を選択することもできます。

  • * 平均スループット。 * 1 秒あたりのイベント数( 1 、 000 、 000 など)。

  • * 最大スループット。 * 1 秒あたりのイベント数( 4 、 000 、 000 など)。

  • * 平均メッセージサイズ。 * バイト単位、非圧縮(最大 1MB 、 1000 など)。

  • * メッセージ形式。 * Avro 、 JSON 、プロトコルバッファ、バイナリ、テキスト、 「わからない」など。

  • * 複製係数 * オプションは 1 、 2 、 3 (流暢な推奨)、 4 、 5 です。 または 6.

  • * 保持時間。 * 1 日(例:)。Apache Kafka にデータを保存しておく期間を教えてください。無期限には、任意の単位で -1 を入力します。無制限の保持期間を 10 年と想定しています。

  • [ ブローカー数を減らし、 Infinite Storage を許可するための階層化ストレージを有効にする ] のチェックボックスをオンにします。

  • 階層型ストレージが有効になっている場合は ' リテンションフィールドによって ' ブローカにローカルに保存されるデータのホットセットが制御されますアーカイブ保持フィールドは、アーカイブオブジェクトストレージにデータを格納する期間を制御します。

  • * アーカイブ・ストレージの保存期間 * 1 年(例:)データをアーカイブストレージに保存する期間無期限の任意の単位を指定して -1 を入力します。無制限の保持期間を 10 年と想定しています。

  • * 成長乗数 * 1 (例:)。このパラメータの値が現在のスループットに基づく場合は、 1 に設定します。追加の増加に基づいてサイズを決定するには、このパラメータに増加率を設定します。

  • * プロデューサーインスタンスの数。 * 10 (例:)実行されるプロデューサーインスタンスの数はいくつですか?この値は、 CPU 負荷をサイジング計算に含めるために必要です。空白の値は、 CPU 負荷が計算に組み込まれていないことを示します。

この入力例に基づいて、サイジングはプロデューサーに次のように影響します。

  • 非圧縮バイト単位の平均スループット: 1Gbps圧縮されていないバイト数のピークスループット: 4Gbps圧縮されたバイト数の平均スループット: 400MBps 。圧縮バイトの最大スループット: 1.6GBps 。デフォルトの 60% の圧縮率に基づいています(この値は変更できます)。

    • 必要なホットセットストレージの合計数 :31 、 104TB ( レプリケーションを含む ) 、圧縮。必要なオフブローカーアーカイブストレージの合計: 378 、 432TB 、圧縮使用 "https://fusion.netapp.com" StorageGRID のサイジングの場合:

Stream Processors は、 Apache Kafka のデータを使用し、 Apache Kafka に生成するアプリケーションまたはサービスを記述する必要があります。ほとんどの場合、これらは ksqlDB ストリームまたは Kafka ストリームで構築されます。

  • * 名前。 * Spark streamer 。

  • * 処理時間。 * このプロセッサーは 1 つのメッセージを処理するのにどれくらいかかりますか?

    • 1 ミリ秒(シンプルでステートレスな変換)(例)、 10 ミリ秒(ステートフルなメモリ内動作)

    • 100ms (ステートフルネットワークまたはディスク処理)、 1000ms (サードパーティ製 REST コール)

    • このパラメータをベンチマークして、その所要時間を正確に把握しました。

  • * 出力保持 * 1 日(例)ストリームプロセッサは Apache Kafka に出力を返します。この出力データを Apache Kafka にどれくらいの期間保存しますか?無期限の任意の単位を指定して -1 を入力します。

  • [ ブローカー数を減らし、 Infinite Storage を許可するには、 [ 階層型ストレージを有効にする ] チェックボックスをオンにします。

  • * アーカイブ・ストレージの保存期間 * 1 年(例:)データをアーカイブストレージに保存する期間無期限の任意の単位を指定して -1 を入力します。無制限の保持期間を 10 年と想定しています。

  • * 出力パススルー率。 * 100 (例:)ストリームプロセッサは Apache Kafka に出力を返します。Apache Kafka に出力されるインバウンドスループットの割合を教えてください。たとえば、インバウンドスループットが 20Mbps で、この値が 10 の場合、出力スループットは 2Mbps になります。

  • この機能はどのアプリケーションから読み取られますか。「 Spark 」を選択すると、販売担当者タイプに基づいたサイジングで使用された名前になります。上記の入力に基づいて、ストリームプロセッサインスタンスとトピックパーティションの推定にサイジングを行うと、次のような効果が期待できます。

  • このストリームプロセッサアプリケーションには、次の数のインスタンスが必要です。受信するトピックでは、多くのパーティションが必要になる場合があります。このパラメータを確認するには、 [ 流暢 ] に連絡してください

    • 平均スループットで 1 、 000 、増加率なし

    • 4 、 000 :増加率のないピークスループット

    • 1 、 000 :平均スループットと増加率

    • 4 、 000 :最大スループットで増加率

消費者

Apache Kafka のデータを利用していて、 Apache Kafka にデータを生成していないアプリケーションやサービスについて説明してください。たとえば、ネイティブのクライアントや Kafka Connector などです。

  • * 名前 . * Spark consumer 。

  • * 処理時間。 * この消費者は、 1 つのメッセージを処理するのにどれくらいの時間がかかりますか。

    • 1 ミリ秒(シンプルでステートレスなロギングなどのタスク)

    • 10 ミリ秒(データストアへの高速書き込み)

    • 100 ミリ秒(データストアへの書き込み速度が遅い)

    • 1000 ミリ秒(サードパーティの REST コール)

    • その他のベンチマークされたプロセスの中には、既知の期間があります。

  • * 消費者タイプ。 * アプリケーション、プロキシ、シンクを既存のデータストア( RDBMS 、 NoSQL など)に。

  • この機能はどのアプリケーションから読み取られますか。このパラメータは、以前に決定したプロデューサーおよびストリームのサイジングを使用して接続します。

上記の入力に基づいて、コンシューマインスタンスとトピックパーティションの推定サイズを決定する必要があります。コンシューマアプリケーションには、次の数のインスタンスが必要です。

  • 平均スループットで 2 、 000 、増加率はゼロ

  • 8 、 000 :ピークスループットで、増加率はゼロです

  • 平均スループットで 2 、 000 、増加率も含まれます

  • 8 、 000 :最大スループット。増大の乗数も含まれます

受信トピックでは、この数のパーティションも必要になる場合があります。確認のため、流暢な連絡をします。

生産者、ストリームプロセッサ、および消費者の要件に加えて、次の追加要件を提供する必要があります。

  • * 再構築時間。 * 例: 4 時間。Apache Kafka ブローカーホストで障害が発生すると、そのデータは失われ、障害が発生したホストと交換するために新しいホストをプロビジョニングすると、この新しいホストをどのくらいの速さで再構築する必要がありますか?値が不明な場合は、このパラメータを空白のままにします。

  • * リソース使用率目標(パーセンテージ)。 * 例: 60 。平均スループット中にホストをどの程度使用しますか?Conluent の自己バランシングクラスタを使用していない場合は、 60% の使用率を推奨します。この場合、使用率が高くなります。

環境の説明

  • * どの環境でクラスターを実行しますか? * Amazon Web Services 、 Microsoft Azure 、 Google クラウドプラットフォーム、オンプレミスのベアメタル、 VMware オンプレミス、 OpenStack をオンプレミスで運用するのか、 Kubernates をオンプレミスで運用するのか

  • * ホストの詳細。 * コアの数: 48 (例:)、ネットワークカードのタイプ( 10GbE 、 40GbE 、 16GbE 、 1GbE 、またはその他のタイプ)。

  • * ストレージボリューム。 * ホスト: 12 (例:)。ホストあたりのハードドライブまたは SSD の数はいくつですか。競合するホストごとに 12 台のハードドライブを推奨します。

  • * ストレージ容量 / ボリューム( GB 単位)。 * 1000 (例:)。1 つのボリュームストアでギガバイト単位のストレージ容量はどれくらいですか?競合する場合は 1TB のディスクを使用します。

  • * ストレージ構成 * ストレージ・ボリュームの構成方法競合製品は、 Conluent のすべての機能を活用するために RAID10 を推奨しています。JBOD 、 SAN 、 RAID 1 、 RAID 0 、 RAID 5 、 その他のタイプもサポートされています。

  • * 単一ボリュームのスループット( Mbps )。 * 125 (例:)1 つのストレージボリュームで 1 秒あたりのメガバイト数で読み取りまたは書き込みを行うことができる速度はどれくらいですか。競合するハードディスクドライブは、通常 125 Mbps のスループットを持つ標準ハードディスクドライブをお勧めします。

  • * メモリ容量( GB )。 * 64 (例)。

環境変数を決定したら、 Size my Cluster (マイクラスタのサイズ)を選択します。前述の例に基づいて、 Con裕福 な Kafka のサイジングを決定しました。

  • * Apache Kafka * Broker count : 22 。クラスタはストレージバウンドです。階層型ストレージを有効にして、ホスト数を減らし、ストレージを無制限にすることを検討してください。

  • * Apache ZooKeeper. * Count : 5 ; Apache Kafka Connect Workers : Count : 2 ; Schema Registry : Count : 2 ; REST Proxy : Count : 2 ; ksqlDB : Count : 2 ; Conluent Control Center : Count : 1 。

ユースケースを考慮せずに、プラットフォームチームにリバースモードを使用する。パーティションモードを使用して、 1 つのトピックに必要なパーティションの数を計算します。を参照してください https://eventsizer.io リバースモードとパーティションモードに基づいたサイジングの場合