Apache Kafka は、分散型マッチ ストリームを拡大するための非常に効率的なプラットフォームです。これは、大規模なイベントの読み取り、書き込み、小売、およびコースを実行できる機能です。 または、Kafka がこれらの項目を適切に達成できる範囲は、Kafka クラスターを構成する範囲によって異なります。 Kafka は複雑な構造を持っており、Kafka レコードデータ ストリームの効率は、Kafka の個々の構成要素がどのように設計されているかによって、かなり異なります。 基本的に Kafka から最も簡単なパフォーマンスを得るための舵取りを提供するために、このテキストでは、1 つの主要な Kafka 要素である顧客を構成するための最も簡単な方法について説明します。 以下では、Kafka 構造全体で Customers が一致するビルド、Person を設計する方法、および Kafka クラスターをスーパーチャージするためにどの Person の最も簡単なプラクティスを緩和できるかを調べることができます。カフカ? 定義された Kafka クラスターの構成要素
Kafka の顧客と連携するための最も簡単なプラクティスに入る前に、Kafka の全体構造と Kafka クラスターの基本的な構成要素に焦点を当てましょう。
Kafka は、今お話ししたように、分散型マッチ ストリーミング プラットフォームです。 その原因は、記録データを正確な時間内に追跡することです。または、あなたが大声で叫ぶかもしれないほど明確な時間で停止することです。
記録データのストリーミングを可能にするために、Kafka は非常に多くの特定の要素に依存しています:
これらの構成要素を一緒に構築するときはいつでも、Kafka クラスターを受け取ります。このクラスターは、分散構造の使用により、1 つまたは非常に多くのクラスのメッセージを通過する可能性があります。
主要な Kafka のアイデア
典型的な Kafka クラスター構造を理解することに加えて、いくつかの重要な Kafka のアイデアを処理することも重要です –個人グループ、オフセット、プラグ、およびレプリケーション コンポーネント – 記録データ トレイルのパフォーマンスを最適化しようとするときはいつでも。
個人近隣は、同じ個人チームのタイトルの下に登録された一連の常連客です – デザイン内の個人チームに相当します下。
すべての個人チームは、すべてのパーティションのオフセットで構成されます。 オフセットは、パーティションのパーソンがレコードデータを見つける 2 番目のビルドにあるパーティション全体の生活を表します。その人がダウンして再開する試合内、またはその明示的な人チームに登録された顧客の数内の任意の代替. 、あるレベルの Person ダウンタイムでのレコードデータの損失や見落とされたメッセージを防ぐためとは別に.
Kafka では、プラグは、そのパーティションのオフセットがパーティションの終わりに達する前に、ユーザーが読まなければならない一連のメッセージです。 明らかに、この量は、記録データを正確な時間内に追跡しようとするたびに怒鳴る可能性があるのと同じくらい小さいことを望んでいますが、コミュニティのスループットを処理する要因によって、プラグの量が徐々に増加します。障壁。 それは、以下で繰り返しますが、カフカの顧客はプラグを減らすことで安心できます.
レプリケーション コンポーネント
レプリケーション コンポーネントは、トピックがブローカー間でレプリケートされた一連のイベントです。
)
たとえば、トピックのレプリケーション コンポーネントが 2 の場合、トピックは 2 つのブローカーに分散されています。 1 つの Broker が停止した場合、他の Broker が有効になるという理由で、Topic を顧客が利用できるようになります。
レプリケーション コンポーネントが昇格すると、あなたの Kafka recordsdata traipse.
Kafka Person の作成
Kafka の顧客と連携するための最も簡単なプラクティスに焦点を当てることを約束しました。ということで、焦点レベルを成長中の顧客にシフトしましょう。 GitHubから拝借):
このコードは 3 つの主な問題を処理します:
この構成の使用により、Person は着信メッセージを繰り返し処理し、デフォルトで数秒ごとにオフセットをコミットします。
Kafka Person の最も簡単なプラクティス
Kafka の分散構造は、記録データのストリーミングと処理の到達範囲によって、集中型アーキテクチャに比べていくつかの固有の利点を提供します。
ただし、Kafka から最も簡単なパフォーマンスを得るには、コアの最も簡単なプラクティスに固執する必要があります。
#1. 最高の一連のパーティションを使用してくださいすべてのパーティションが、最高の人物を決定する最高の人物によって消費されることさえあるという条件で一連のパーティションはよく知られた考慮事項です。 一連のパーティションの合計によって、すべてのサブジェクトに対して所有する可能性のある一連の顧客の合計が制限されます。 多くの場合、余分なパーティションを所有するほど、コミュニティのスループットが向上します。これは、余分な顧客が余分なブローカーからレコードデータにアクセスする可能性があるためです。 反対に、あまりにも多くのパーティションとあまりにも多くの顧客を取得する場合はいつでも、ブローカーがすべての人からの要求を処理するのに必要な時間内に強化されるため、昇格されたプラグインに足を踏み入れる可能性があります.
ここでの比類のないポイントは、余分なパーティションは基本的に直立したコンポーネントですが、Kafka メトリクスがコミュニティのスループットを処理し、適度にプラグインして、最高のバランスを保つようにすることはよく知られています。 パーティションが多すぎると、この種のコンポーネントが存在する可能性がありますが、クラスターがビデオ表示されない場合はいつでも多すぎると知るのは大変です.
また、 2 と 3 で割り切れるパーティションの合計数量を選択することは、すべての人が均等な一連のパーティションを受け取ることを保証するのに役立つため、最も簡単に認識できます.
すべてのパーティションが、最高の人物を決定する最高の人物によって消費されることさえあるという条件で一連のパーティションはよく知られた考慮事項です。 一連のパーティションの合計によって、すべてのサブジェクトに対して所有する可能性のある一連の顧客の合計が制限されます。 多くの場合、余分なパーティションを所有するほど、コミュニティのスループットが向上します。これは、余分な顧客が余分なブローカーからレコードデータにアクセスする可能性があるためです。 反対に、あまりにも多くのパーティションとあまりにも多くの顧客を取得する場合はいつでも、ブローカーがすべての人からの要求を処理するのに必要な時間内に強化されるため、昇格されたプラグインに足を踏み入れる可能性があります.
ここでの比類のないポイントは、余分なパーティションは基本的に直立したコンポーネントですが、Kafka メトリクスがコミュニティのスループットを処理し、適度にプラグインして、最高のバランスを保つようにすることはよく知られています。 パーティションが多すぎると、この種のコンポーネントが存在する可能性がありますが、クラスターがビデオ表示されない場合はいつでも多すぎると知るのは大変です.
また、 2 と 3 で割り切れるパーティションの合計数量を選択することは、すべての人が均等な一連のパーティションを受け取ることを保証するのに役立つため、最も簡単に認識できます.
#2. 一貫性を維持する
最高の顧客数を決定するだけでなく、維持するためにテストを行うことも最も重要です。
ブランドの現在の個人が個人チームに登録されるたびに、ブローカーは配信を停止する必要があるという説明現在の顧客間でパーティションを再配布している間、メッセージはフリートします。 ここにあるのは、あなたがおそらく高いプラグで止まるかもしれない他のすべてのリーチです.ダウンは避けられません。 ただし、スケーリングを決定しない場合はいつでも、固定依存を奨励してください。 また、スケーリングがよく知られている場合は、「厳格な」自動スケーリングの原則を使用して、顧客のリバランス率を低下させることを提案してください。
#3. 2
よりも高いレプリケーション コンポーネントを使用する
Kafka は、1 のレプリケーション コンポーネントを設計することをより単純にします。しかし、上で定義したように1 つのブローカーがダウンした場合、他の 1 つのブローカーがあなたのデータを保持するために離れて働いているのと同じくらい多くを所有していない可能性があるため、レプリケーション コンポーネントが 2 つ以下であることは最も簡単に認識できます。 recordsdata traipse working.
レプリケーション ファクター 1 は、冗長なブローカーの資金を調達できないとき、またはトピックに直面したときはいつでも、意味をなすものです。
#4. 冪等性を有効にする
冪等性は、同じファブリケートを所有するためのクリア操作 (インスタンスとしてデータベースに挿入する) のプロパティを参照します。
Kafka は同じメッセージを再送信できますが、場合によっては、その機能を利用してメッセージをユーザーに巻き戻すことができます。
Kafka クラスターから余分に獲得する
裏の行は、Kafka が非常に優れているということです。レコードデータをストリーミングするための効率的で用途の広いプラットフォーム。 ただし、多くの非常に効率的で用途の広いプラットフォームに注意してください。Kafka が提供する明示的なコストは、それがどれだけきちんと構成されているかに慎重に依存します。 基本的に Kafka から最も簡単なパフォーマンスと信頼性を得るには、構成要素を取り巻くニュアンスに注意を払い、顧客、テーマ、およびパーティションに注意して、最小限のプラグイン、ほとんどのコミュニティに対してクラスターを高く設定できるようにすることはよく知られています。スループットと信頼性は、あなたが適度にお金を考え出すかもしれません.