ZooKeeper チュートリアル: とは ArchiApache ZooKeeper の構造

分散システムとは何ですか?

分散アプリケーションは、ネットワーク内の複数のシステム上で実行できるアプリケーションです。 同時実行しますneo通常、特定のタスクを完了するために調整することによって行われます。これらのタスクにはかなりの時間がかかる場合があります hours 非配布アプリケーションによって完了できます。

ズーキーパーとは何ですか?

ApacheZookeeper は、大規模なホストの管理に役立つオープンソースの分散調整サービスです。 分散環境での管理と調整は困難です。 Zookeeper はこのプロセスを自動化し、開発者がソフトウェア機能の分散性を気にすることなく、ソフトウェア機能の構築に集中できるようにします。

Zookeeper は、分散アプリケーションの構成情報、名前付け、グループ サービスの管理に役立ちます。さまざまなプロトコルを実装します。 cluster そのため、アプリケーションは独自に実装しないでください。複数のマシンの一貫した単一のビューを提供します。

Apache Zookeeper を選ぶ理由

Zookeeper の人気の背後にある重要な理由は次のとおりです。

  • 相互排除と共同が可能になりますoperaサーバープロセス間の接続
  • これにより、アプリケーションが一貫して実行されることが保証されます。
  • トランザクションプロセスが部分的に完了することはありません。 成功または失敗のステータスが与えられます。 分散状態は維持できるが、それは決して間違ったことではない
  • 接続先のサーバーに関係なく、クライアントはサービスの同じビューを表示できます。
  • 特定のルールセットに従ってデータをエンコードするのに役立ちます
  • 標準的な階層を維持するのに役立ちますarchiファイルやディレクトリに似た cal 名前空間
  • ローカルまたは地理的に接続できる単一システムとして実行されるコンピューター
  • ノードに参加/離脱することができます。 cluster リアルタイムのノードステータス
  • より多くのマシンをデプロイすることでパフォーマンスを向上させることができます
  • ノードをリーダーとして選択して、より適切な調整を行うことができます。
  • ZooKeeper は、データの書き込みよりも読み取りの方が一般的なワークロードで高速に動作します。

飼育係 Archi構造: どのように機能するのですか?

についての簡単な説明は次のとおりです アパッチ 動物園の飼育係 archi構造:

  • Zookeeper はクライアントサーバーをフォローします Archi構造
  • すべてのシステムはデータのコピーを保存します
  • リーダーはスタートアップ時に選出される
ArchiZooKeeperの構造
ArchiZooKeeperの構造

サーバー: サーバーは、クライアントが接続すると確認応答を送信します。 接続したサーバーから応答がない場合、クライアントはメッセージを別のサーバーに自動的にリダイレクトします。

クライアント: クライアントは分散アプリケーション内のノードの 1 つです cluster。サーバーからの情報にアクセスするのに役立ちます。すべてのクライアントは、サーバーがクライアントが生きていることを知るのに役立つメッセージを定期的にサーバーに送信します。

リーダー: サーバーの XNUMX つがリーダーに指定されます。 すべての情報をクライアントに提供するとともに、サーバーが稼動していることを確認します。 接続されているノードのいずれかに障害が発生した場合は、自動回復が実行されます。

フォロワー: リーダーの指示に従うサーバーノードをフォロワーと呼びます。

  • クライアントの読み取りリクエストは、対応して接続された Zookeeper サーバーによって処理されます。
  • クライアントの書き込みリクエストは、Zookeeper リーダーによって処理されます。

アンサンブル/Cluster: アンサンブルまたはアンサンブルと呼ばれる Zookeeper サーバーのグループ Cluster。 ZooKeeper インフラストラクチャは、 cluster Apache の実行時にシステムを最適な値にするためのモードです。

ZooKeeper WebUI: ZooKeeper リソース管理を使用する場合は、次を使用する必要があります。 WebUIの。 コマンド ラインを使用する代わりに、Web ユーザー インターフェイスを使用して ZooKeeper を操作できるようになります。 ZooKeeper アプリケーションとの高速かつ効果的な通信を提供します。

Zookeeper データ モデル (ZDM)

この ZooKeeper チュートリアルでは、Zookeeper データ モデルについて学びましょう。 以下の図は、Apache Zookeeper データ モデルを説明しています。

Zookeeper データ モデル
Zookeeper データ モデル
  • Zookeeper データ モデルは、各ノードが ZNode と呼ばれる階層名前空間に従います。ノードとは、 cluster 走る
  • すべての ZNode にはデータがあります。 子供がいるかもしれないし、いないかもしれない
  • ZNode パス:
    • 正規、スラッシュ区切り、絶対
    • 相対参照は使用しないでください
    • 名前には Unicode 文字が含まれる場合があります
  • ZNode は、データ変更の統計構造とバージョン番号を維持します。

Zookeeper ノードの種類

Znode には XNUMX つのタイプがあります。

固執 znode: このタイプの znode は、その特定の znode を作成したクライアントが切断された後でも生き続けます。 デフォルトでは、zookeeper では、指定されていない場合、すべてのノードが永続的になります。

エフェメラル znode: このタイプの動物園管理者 znode は、クライアントが生きているまで生き続けます。 したがって、クライアントが飼育員から切断されると、クライアントも削除されます。 さらに、一時ノードは子を持つことを許可されません。

シーケンシャル znode: 順次 znode は一時的または永続的のいずれかになります。 したがって、新しい znode が順次 znode として作成されるとき。 元の名前に 10 桁のシーケンス番号を付加することで、znode のパスを割り当てることができます。

ZDM- 時計

Zookeeper の場合、監視イベントは監視を設定したクライアントに送信される 1 回限りのトリガーです。この問題は、その時計のデータが変更されたときに発生しました。 ZDM ウォッチを使用すると、クライアントは znode が変更されたときに通知を受け取ることができます。 ZDM読み取り operagetData()、getCh などのオプションidleren()、exist には監視を設定するオプションがあります。

監視は順序付けされており、監視イベントの順序は更新の順序に対応します。 クライアントは、znode に対応する新しいデータを確認する前に、znode の監視イベントを確認できます。

ZDM - アクセス制御リスト

Zookeeper は ACL を使用して znode へのアクセスを制御します。 ACLは(スキーム:id、パーミッション)のペアで構成されます。

ACL スキームを組み込む:

world: 単一の ID を持ち、誰でも

auth: ID は使用しません。認証されたユーザーを表します。

ダイジェスト: ユーザー名を使用します: パスワード

host: クライアントのホスト名を ACL ID として使用できるようにします。

IP: クライアント ホストの IP アドレスを ACL ID として使用します

ACL 権限:

  • CREATE
  • お客様の声は
  • レビューを
  • DELETE
  • 管理人

例 (IP: 192.168.0.0/16、読み取り)

ZKS – セッションの状態と存続期間

ZKS – セッション状態
ZKS – セッション状態
  • リクエストを実行する前に、クライアントがサービスとのセッションを確立することが重要です。
  • すべて operaクライアントがサービスに送信されると、セッションが自動的に関連付けられます。
  • クライアントは、次のいずれかのサーバーに接続できます。 cluster。ただし、接続できるサーバーは 1 つだけです
  • セッションは「順序保証」を提供します。 セッション内のリクエストはFIFO順に実行されます
  • セッションの主な状態は、1) 接続中、2) 接続中、3) 終了、4) 未接続です。

ZooKeeperのインストール方法

ステップ1) 「購読を続ける」をクリックします
これに行く そして「購読を続ける」をクリックしてください

ZooKeeper をインストールする

ステップ2) 利用規約に同意する
次のページで、ライセンス契約に同意します

ZooKeeper をインストールする

ステップ3) ありがとうメッセージが表示されました
以下が表示されますwing メッセージ

ZooKeeper をインストールする

ステップ4) 「続行して構成」をクリックします
5 分後にページを更新し、構成に進みます

ZooKeeper をインストールする

ステップ5) 「起動を続ける」をクリックします
次の画面で、ZooKeeper を起動します

ZooKeeper をインストールする

ステップ6) おめでとう!
あなたは終わった!

Apache ZooKeeper アプリケーション

Apache Zookeeper は次の目的で使用されますwing 目的:

  • 構成の管理
  • ネーミングサービス
  • リーダーの選択
  • メッセージをキューに入れる
  • 通知システムの管理
  • Sync神化
  • 分散 Cluster マネジメント

Zookeeper を使用している企業

  • Yahoo
  • Facebook
  • オークション
  • Twitter
  • Netflix
  • Zynga
  • ヌタニクス

Zookeeper を使用するデメリット

  • 新しい Zookeeper サーバーを追加すると、データ損失が発生する可能性があります
  • ユーザーの移行は許可されていません
  • ラックの配置と認識のサポートは提供しません
  • Zookeeper では、偶発的なデータ損失を防ぐためにポッドの数を減らすことはできません
  • サービスがデプロイされている場合、完全に再インストールしないとサービスをホスト ネットワークに切り替えることはできませんyed 仮想ネットワーク上で
  • サービスは、初期展開が終了した後のボリューム要件の変更をサポートしていません
  • 大きいものがあります numbers 関与するノードの数が多いため、複数の障害点が存在する可能性があります
  • メッセージは通信ネットワークで失われる可能性があり、再度復元するには特別なソフトウェアが必要です

まとめ

  • 分散アプリケーションは、ネットワーク内の複数のシステム上で実行できるアプリケーションです。
  • Apache Zookeeper は、大規模なホストの管理を支援するオープンソースの分散調整サービスです。
  • 相互排除と共同が可能になりますoperaサーバープロセス間の接続
  • サーバー、クライアント、リーダー、フォロワー、アンサンブル/Cluster、ZooKeeper WebUI は、Zookeeper の重要なコンポーネントです
  • XNUMX 種類の Znode は、永続性、一時的、シーケンシャルです。
  • ZDM 監視は、監視を設定したクライアントに送信される XNUMX 回限りのトリガーです。 その時計のデータが変更されたときに発生しました
  • Zookeeper Hadoop は ACL を使用して znode へのアクセスを制御します
  • 設定の管理、サービスのネーミング、リーダーの選択、メッセージのキューイング、通知システムの管理、 Sync王権化、分散 Cluster 経営など
  • ヤフー、フェイスブック、イーベイ、ツイッター、 Netflix Zookeeper を使用している有名な企業はいくつかあります
  • このツールの主な欠点は、新しい Zookeeper サーバーを追加する場合に損失が発生する可能性があることです。