kafka理論学習


1.kafkaの特徴:分布式、パーティション化可能、コピー可能ファイルベースストレージ
ユニークな設計:メッセージが消費され、メッセージが削除されるのは互いに干渉しない目的:メッセージが消費されるのを減らした後、ファイルの内容を変更するIO支出メッセージが削除されるのはbroker構成の時間だけと関係がある.
producer:topicにメッセージconsumerを発行する:topicsを予約してkafkaクラスタを消費する:各サービスをbrokerと呼ぶ
broker:topic:基本単位、メッセージのまとめpartition領域:各topicは複数の領域に分けられ、各領域は記憶面でappend logであり、append logのファイル内の位置をoffsetと呼び、メッセージpartitionの目的を唯一示す:単一ファイルが大きすぎるリーダーを避ける:パーティション内のメッセージの読み書きfollower:同期リーダー、いつでもリーダーを引き継ぐ準備
consumers and consumerグループ:キューモード:各consumerがconsumerグループに属するパブリケーション-サブスクリプション:各consumerが異なるグループに属する
guarantees保証:partitionsに送信されたメッセージは、その受信された順序でログに追加されます.消費者にとって、彼らの消費メッセージの順序とログ内のメッセージの順序が一致します.topicのreplicationfactorがNである場合、N-1 kafkaインスタンスの失効を許可します.
2.設計原理の持続性:1.ファイルストレージ、ログファイルappend操作、検索が小さい.2.brokerはメッセージを一時的にbufferし、メッセージの個数が一定のバルブ値に達し、fkushはディスクに入ります.書き込み回数を減らす
パフォーマンス:kafkaスループット--->ネットワークIOおよびディスクIOスキーム:メッセージ圧縮メカニズムのオープン
生産者:負荷等化がどのパーティションに到達するかアルゴリズムは非同期送信を決定する:メッセージbufferが立ち上がり、brokerに一括送信する
消費者:brokerにfetchリクエストを送信し、メッセージを取得するoffsetを通知し、その後一定数のメッセージpull or fetchを取得する:アクティブ請求、アクティブ権push:JMSパッシブ取得を維持する
3.メッセージングメカニズムは少なくとも1回から1回が適切に提案されている:メッセージの重複はメッセージの損失より良い
4.バックアップleaderrをコピーして読み書き要求を処理し、followerはfolowerとconsumerのようにメッセージを消費し、ローカルログのleaderを保存してすべてのfolower状態を追跡し、followersはleaderの代わりに
5.ログtopicの名前は「my_topic」で、2つのpatitionsがあり、各partitionは物理記憶レベルで、複数のlog fileからなり、segmentfile命名規則は「最小offset」である.「kafka」ログの作成ポリシーログの削除ポリシーログの追加ポリシー
6.zookeeperを割り当ててkafkaの元の情報を格納し、zookeeper watchメカニズムを使用して元の情報を発見し、対応する動作1)broker登録:kafkaが起動した後、まずzookeeperに自分のノード情報を登録し、brokerとzookeeperが接続を切断した場合、このznodeはフォーマットを削除されます:/broker/ids/[0...N]-->host:port;2)broker topic registry:brokerが起動すると、zookeeperに自分が持っているtopicとpartitions情報が登録され、依然として一時的なznode.形式:/broker/topics/[topic]/[0...N]のうち[0..N]はpartionインデックス番号.3を表す)Consumer情報、id登録、offset追跡、領域が持っている追跡
1) Producer   zookeeper  "  "broker  ,   Topic   partition leader  socket       .
2) Broker   zookeeper    broker  ,    partitionleader   .
3) Consumer   zookeeper    consumer  ,    consumer   partition   ,       broker  ,  partition leader  socket  ,     .
クラスタ内の各サービスは、パーティションの一部であるリーダーと、他のパーティションであるfollowersの2つの役割を同時に果たします.これにより、クラスタは負荷のバランスがよくなります.
まとめ:..