「特別トピック4サービス変換」、「セクション4 Zookeeperコア機能とアプリケーションシナリオ」、「セクション5分散ロック」の「第4章[拡張および高度]分散」

「4.4.1ZooKeeperの概要」

ここに画像の説明を挿入

  • 12 10飼育係の適用事例:
    ここに画像の説明を挿入

  • 13 15
    zkの同様の製品:領事etcd(zkより軽量)Doozer

  • 18ポイントスタンドアロンバージョンのインストールリファレンスおよび関連する公式ドキュメントリファレンスポイント:
    ここに画像の説明を挿入
    サーバーの起動:bin/zkServer.sh start
    クライアントとの接続:bin/zkCli.sh -server 127.0.0.1:2181

  • 24 45+ cli操作ガイド:
    ここに画像の説明を挿入

  • 30 57+ Java API

  • 36 35サードパーティクライアント:zkClient、キュレーター

「4.4.2ZooKeeperコアコンセプト」

  • セッション:
    ここに画像の説明を挿入

  • データ・モデル:
    ここに画像の説明を挿入

    • 6 5 + znode命名規則
    • 8ポイントのznodeノードタイプ:
      ここに画像の説明を挿入
    • 14 5 znodeデータ構造:
      ここに画像の説明を挿入
    • 23 40 acl
    • 27 50飼育係での時間:
      ここに画像の説明を挿入
  • 3255+時計監視メカニズム
    ここに画像の説明を挿入
    ここに画像の説明を挿入

    • 51 25ZkClientのサブスクリプションメソッドは継続的に監視できます

56 35+ zkの機能:
ここに画像の説明を挿入

「4.4.3ZooKeeperの典型的なアプリケーションシナリオ」

  • 16ポイントネーミングサービス:
    ここに画像の説明を挿入

  • 16 50マスター選出:
    ここに画像の説明を挿入
    方法1:一時ノードマスターの作成を競い、1つだけが成功し、それらすべてが監視されます
    方法2:最小ノード方法:サーバーノードと子ノードの一時的な順序によって決定されます

  • 30 42以上の分散キュー:
    ここに画像の説明を挿入

  • 34 55+分散ロック:
    ここに画像の説明を挿入
    ここに画像の説明を挿入

《 4.4.4ZooKeeperクラスター》

  1. conf /zoo1.cfgは次のとおりです。zoo2.cfg、zoo3.cfgは似ています
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zk1
clientPort=2181
server.1=localhost:2881:3881
server.2=localhost:2882:3882
server.3=localhost:2883:3883
  1. / var / lib / zk1の下にmyidファイルを作成します。内容は1.2で、3は類似しています。zkファイルがzkユーザーによって作成され、このフォルダーがrootに属している場合は、一連の操作を実行してユーザーと権限を変更する必要があります
    。sudochown
    -R zk:zk / var / lib / zk1 chmod -R 775 / var / lib / zk1

  2. 1つずつ開始します。java -cp zookeeper-3.4.10.jar:lib/*:conf org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo1.cfg

  • 2243監視コマンド

  • 26ポイント+ ZABプロトコル:zk
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    はリーダー選出には利用できません

「4.4.5詳細な分散整合性プロトコル」

  • ロールバックには元に戻すログが必要であり、送信にはやり直しログが必要です

  • 15以下に示すように、2段階(2PC)で提出されます。私:プロトコルステップの観点から、2PCはZABプロトコルに似ています。コーディネーターはZABプロトコルのリーダーに似ています。ZABが半分以上を必要とするわけではなく、2PCがすべてを必要とします。最も基本的な違いは、2PCがコンセンサスアルゴリズムであるということです。ZABは、以下のPaxosのようなコンセンサスアルゴリズムである必要があります。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • 30 40+ 3PC:
    ここに画像の説明を挿入
    3PCアプリケーションの難しさは、タイムアウト期間の設定にあります。市場に出回っている3PCアプリケーションはほとんどありません。

  • 46ポイント+パクソス。ウィキペディア:Paxosはしばしば誤って「コンセンサスアルゴリズム」と呼ばれることに注意してください。しかし、「一貫性」と「コンセンサス」は同じ概念ではありません。Paxosはコンセンサスアルゴリズムです。

リーダーの問題は、リーダーの負荷が高いことです。リーダーが1つのポイントで失敗した場合、クラスター全体が使用できなくなり、可用性を回復するためにリーダーを再選出する必要があります。
ここに画像の説明を挿入

  • 100 45 ZAB、ラフトはパクソスから生まれました

「4.5.2Zookeeper分散ロックの実装」

  • 23 7 Reentrantlockに衝撃的なグループ効果がないのはなぜですか?AQSには、現時点でロックを新たに適用するスレッド(不公平なロック)と競合するのに最も長い待機スレッドしかないためです。したがって、zkを使用して分散ロックを実装する2番目の方法、つまり一時シーケンスノードを使用する方法では、実際には同様の考え方であるキューを使用します。

おすすめ

転載: blog.csdn.net/qq_23204557/article/details/112758463