カフカ研究ノート

カフカは、設計解析()住んでいた:カフカは、背景とアーキテクチャについて説明し、」研究ノートを

 

 MQの役割:

 1.デカップリング:データの生産者とデカップリングのデータコンシューマ。データの生産者はPruducerは、データのみの生産を心配する必要は、消費データを置く消費者データの消費量を心配することだけです。プロセスは、MQを確保するためする転送処理を心配することなく。

    ただ、生産プロデューサー消費者データは、送信が失敗した場合、それは責任や生産側の消費者側の責任がある、データの後のHttp要求を使用して送信されます、と思いますか?生産再試行メカニズムを保証メッセージの送信が失敗した場合には、同等

    Logicは追加されたデータProducerを生成しません。

 2.クリッピング:プロデューサー(必ずしもシステム内で、そのようなHTTPインターフェースのような外部システムであってもよい、インタフェースは爆発外トラフィックに開放されている)の突然のサージによって生成されるデータの量、消費者スループットはデータの量を満たすことができません増加しました。そのため、

  必然的にデータの蓄積につながる、それはゆっくりと、システム全体を圧倒します。したがって、それはMQデータプロデューサーの生産キューを導入する必要があり、消費者が直接消費者に押しつぶされていないMQ、データを蓄積することができていない消費しました。

 3.非同期:スループットと消費者のプロデューサーとの間に異なるがあるかもしれません。したがって、生産と消費のデータが同期されない場合があります。MQが導入され、生産と消費の非同期データの流れているので。

 

 記事:

  4.回復性:システム障害の構成要素の一部は、システム全体に影響を与えません。メッセージキューは、メッセージがまだシステム復旧後に処理することができますキューに入れられたので、メッセージ処理プロセスがハングアップしてもいることを、プロセス間の結合低減します。

  シーケンス:ほとんどの使用シナリオでは、データ処理の順序は重要です。ほとんどの元々のメッセージ・キューを発注し、データを特定の順序で処理されることを保証することができます。カフカは、パーティション内の秩序のメッセージを確認してください。

     HTTPは、送信要求につながることは、必ずしも対象のサービスに到達する最初のではなく、必ずしもターゲット・サービスの応答を取得しないように、ネットワークの遅延が原因要求します。要求はMQを生成する場合、秩序の要求を保証することができます。

カフカ用語集:

  1.Broker:Kafkaノード

  2.Controller:カフカにクラスタまたは複数のブローカー、クラスタおよびすべてのパーティションのコピー間で状態を管理する責任があるコントローラ(カフカコントローラ)、のために選出されるブローカーが存在します。リーダーは、パーティションのコピーが失敗した場合、コントローラは、パーティションのコピー新しいリーダーの選出を担当しています。

              変更がISRコレクションが発生したパーティションを検出した場合、コントローラは、すべてのブローカーの更新プログラムのメタデータ情報を通知する責任があります。トピックのための、または同じコントローラの再配分により、パーティションの数を増やすためにkafka-topics.shスクリプトは、パーティションを担当していた場合。
         コントローラー選挙のメカニズム:すべてのブローカーノードは唯一のブローカーが正常に登録されているので、ZKはとても正常に登録Brokerがコントローラになり、一時的なノード/コントローラを登録して行く、その他の障害Brokerは、クラスターが既に障害情報に基づいて存在しているかを決定しますコントローラー。

  3.トピック:カフカのカテゴリがあり、各クラスタにメッセージを公開し、カテゴリがトピックとして知られている、データトピックParition 1ない限り、順序を保証するものではありません。(データに格納されている場所を気にすることなく生産又は消費データにトピックを指定するために1つまたは複数のメッセージ・ブローカのが、ユーザーに格納されているがメッセージのトピック異なる物理的に別個のストレージは、メッセージは、論理的トピックです)

  4.パーティション:異なるブローカーに位置トピックに1つまたは複数の物理パーティションのデータに分割され、単一の内部データがシーケンシャルパーティションです。パーティションの数の増加に伴って、トピック増加するスループット。

  5.Producer:データの生産者は、生産データは、カフカのクラスタを押しました。

  6.Consumer:データ消費者は、消費者がカフカのクラスタからデータを取得します。

  7.コンシューマ・グループ:消費者団体、カフカが(Reblanceが起こらない)安定した動作を保証するために、クラスタ全体に住んで、コンシューマ・グループ内の各パーティションのデータは、消費者の消費量になります。グループ名は、それぞれの消費者のために指定することができるグループ名はデフォルトグループに指定されている場合。

  8.オフセット:各々は、各パーティション内の消費のデータParititonにCGの記録をいくつかのコンシューマ・グループオフセット値を有しています。トピックに記録されているオフセットで__consumer_offsetsと呼ばれます。

  9. Parittionレプリケーションは:異なるカフカブローカ上に格納された複数の部分に各トピックが貨物複数のパーティションに分割され、したがってトピックデータが分割されているので、障害が発生した場合、ブローカは、保存されたブローカになりデータ損失のこの部分。

                                         したがって、カフカは、レプリケーションの概念を作りました。各トピックは、一つ以上の複製、冗長データのパーティションを設けてもよいです。複製の数が3に設定されている場合は、カフカの各Parititonためのデータは、クラスタを表します

                                         3つの部分があり、複製数が1に設定されている場合、カフカの各Parititonを表すデータは、唯一のクラスタが存在します。

  10.パーティションリーダー:プレゼンスの複製、およびデータPartittionブローカ複数のノードにので、各存在。したがって、Parittionリーダー、プロデューサーとコンシューマーParititonデータの、書き込み専用とParititionリーダーとの対話を読んで選択する必要があります。他のブローカーのレプリケーション

                                     唯一のパーティションのフォロワーとして、リーダーがフォロワーに同期したデータに継続されます。あなたは後にハングアップした場合ときリーダー、コントローラは、新しいパーティションのリーダーを指定します。

パーティション:

それはParititionメカニズムに従ってパーティションを保存することを選択しますプロデューサーブローカー、にメッセージを送信するとき。パーティションのメカニズムが合理的に設定した場合、すべてのメッセージが均等ので、負荷分散を実現するために、異なるパーティションの内側に配布することができます。もし、ファイルへのトピックの対応、I / Oがパフォーマンスのボトルネックのトピックとなり、以降パーティションと、異なるメッセージが異なるパーティション異なるブローカーの中に並行して書き込むことができますマシンは、大幅に改善されることをファイルスループット。あなたは、新しいトピックもあなたがトピックを作成するパラメータで指定できる設定項目num.partitionsデフォルトパーティションの数で$ KAFKA_HOME /設定/ server.propertiesで指定することができますが、また、トピックを作成した後、カフカが提供するツールを変更することができます。

メッセージを送信するときは、このニュースを決定するための重要なメカニズムによるとプロデューサーとパーティションがParitionこれに送られるべきで、このメッセージキーを指定することができます。同じキーメッセージは同じパーティションに送信されます、しかし、唯一のパーティション・キーのデータは、(これは個人的な推測です)があることを保証するものではありません

消費少なくとも一度、消費者まで、消費者に一度だけ。

少なくとも一つの消費:1、データ2、データ3、処理は、オフセット提出しました

多くの消費時間:1、データ2は、3オフセットデータ処理を提出しました

唯一の消費者:1、2が落下し、オフセットを一緒に提出3つの結果(分散トランザクション)を下降する処理ではなく、データを処理し、データを受信します

 

おすすめ

転載: www.cnblogs.com/ybonfire/p/11815786.html