[カフカ]デザイン

4199 ワード

カフカデータプラットフォームの最強3章を読み、整理しました.
  • を参照:2章はロープウェイの取り付けに関する
  • カフカ設計の特徴


    既存のActive MQを使用するときに発生する問題


    大量データ処理の限界
    運用管理の課題

    ぶんさんシステム


    複数のサーバからなるサーバグループ
    パフォーマンスの向上
    障害を克服する.
    容易なシステム拡張

    ページキャッシュ


    残りのメモリの一部をページキャッシュとして使用してパフォーマンスを向上
    カフカには5 GBのHipメモリがあれば十分ですので、残りはページキャッシュとして使うことをお勧めします
    1つのシステムで1つ以上のアプリケーションを同時に実行すると、ページキャッシュが共有されます.
    注意:https://brunch.co.kr/@alden/25
    ページキャッシュは、Linux(VFSレイヤ)でディスクアクセスを最小化することでファイルI/Oのパフォーマンスを向上させるためのメモリ領域です.読み込んだファイルの内容をこのページキャッシュ領域に保存すると、同じファイルにアクセスすると、ディスクではなくページキャッシュから読み込まれます.
    Linuxがファイルを開くとfind get page()メソッドは、その領域がページキャッシュに存在するかどうかを確認し、存在する場合はディスクにアクセスしません.領域がページキャッシュにない場合は、page cache alloc()メソッドでページキャッシュ領域を指定してファイルの内容を保存し、生体構造で割り当てられたページキャッシュを追加します.
    出典:https://boxfoxs.tistory.com/288[箱狐-BoxFox]

    バッチ転送処理


    より小さなIOを組み合わせて処理し、頻繁なIOを避ける

    カフカの理解


    テーマ


    データを区別する単位として使用
    サービス名をトピック名として使用=>接頭辞

    パーティション

  • トピックごとに異なるパーティションがあります
  • 高速転送には並列処理が必要であり、トピックで複数のパーティションを行う必要がある
  • パーティションの数を増やすことはできますが、減らすことはできません.トピックを削除する必要があります(注:https://blog.voidmainvoid.net/183)
  • パーティションの数を増やすのは無条件でいいですか?
  • パーティションが多ければ多いほど、ファイルハンドルが多くなり、リソースを浪費する
  • リットルのパーティションを選択するマネージャーのダウンタイムリーダーが必要です.コントローラロールのエージェントがシャットダウンすると、フェイルオーバが遅延します.隊長を選ぶにはもっと時間がかかる.
  • では、適切なパーティション数は?
  • パーティションは、ランダムに増加するのではなく、適切な値に設定されます.
  • 最初は少ないパーティションで実行することを提案し、その後、プロデューサーまたはコンサルタントがボトルネックに遭遇したときに徐々に増加します.
  • オフセット(Offset)

  • メッセージは
  • に格納される.
  • パーティション内のデジタルインクリメント形式
  • パーティションの一意の値は
  • です.
  • メッセージの順序を確認します.情報はオフセット順にインポートする必要があります.
  • お客様はoffsetを使用してデータをどこに管理しますか?
  • アプリケーション

  • カフカルトは、アプリケーション
  • と呼ばれるエージェントのパーティションに単位分散してコピーされる.
  • エージェントは、アプリケーションのパラメータ値
  • をトピック別に設定できます.
    // 카프카 설정 파일
    vi /usr/local/kafka/conflg/server.properties
    
    // 팩터 값 설정
    default.replication.factor
  • replication: 2
  • replication : 3
  • クラスタ内のすべてのエージェントは同じ設定を設定する必要があります.変更時にすべてのエージェントが再起動する必要があります.
  • 指導グループ.


    オリジナル
    読み取り/書き込み操作

    に注目


    コピー
    リーダーシップグループが失敗した場合、注目者はリーダーシップを引き継ぐ.障害のあるリーダーは、新しいリーダーからコピーされていないデータを読み取り、同期します.

    メリットとデメリット

  • の利点
  • の障害を克服:仲介者が停止しても、他の仲介者が障害を起こすことはありません.
  • の欠点
  • リソース使用量増加
  • ISR

  • リーダーと関心者との間のデータの不一致は、リーダーになる問題
  • を引き起こす.
  • 更新中のグループ
  • ISRメンバーのみがリーダーシップを有し、
  • アプリケーションの信頼性の向上
  • のファンは、一定時間ごとにリーダーに新しい情報の確認要求を提出します.キャプテンがこれを受け取ってファンの状態を確認要求がない場合は、ISRから削除します.
  • すべての仲介者が閉鎖されました

  • 最後のリーダーの復活を待つ
    =>クラスタ障害は、
  • を延長する可能性があります.
  • ISRを追放されたが、先に復活すれば自動的にリーダーになる.
    =>リーダーを変更すると、メッセージが失われる可能性があります.
    unclean.leadeer.election.enable = true or false
    //1番方式:false,2番方式:true

    カフカのメインカジノで



    サーバ名/コントローラ


    エージェントレベルの検出に失敗しました
    すべてのパーティションの変更を担当するリーダーシップ
    トピックとパーティションメタデータの管理とパーティションリーダーの決定

    サーバ名/broker


    マネージャー管理
    Brocker/トピックでクラスタ内のトピック情報を表示できます

    サーバ名/コンシューマ


    消費者読み取りのオフセットについて
    0.9以降、オフセットストレージ位置はカフカのトピック(consumer offsets)になります.

    サーバ名/config


    トピックのステータス設定情報の表示