飼育係のサービス登録と発見の原理に

私たちは飼育係を理解するために、すべてのノウハウは、飼育係は主に、分散サービスの登録と発見し、分散ロックを実装するために使用される分散協調サービス、分散アプリケーション、我々は簡単に登録サービス飼育係を達成する方法を説明し、この記事でありますそして、発見。

使用飼育係リアライズのサービス登録とメインアプリケーションは、データ・モデルとのznodeウォッチャーメカニズム飼育係であることがわかったが、それでは、データモデル飼育係の話を始めましょう。

1、飼育係のデータモデル

飼育係のデータモデルは、我々やや似ツリーデータ構造は、次のように図1のデータモデル構造は、また、当社のオペレーティング・システムのディレクトリ構造に多少似ています。


ツリーノードから成る、データストレージは、飼育係に飼育係のznodeと呼ばれる各ノード、データ・モデルを、基づいています。ツリーのノードが異なるとしかしながら、飼育係のznodeは参照パスは、ディレクトリノードデータファイルへのアクセスと同様の形式で参照される基準です。

「車」のノードに別の「アウディ」ノードを作成するには、上記の図に示すように、道を作成します。

/自動車/アウディ作成
1を
介して得られる「車」ノードの下に「BMW」のデータノードの場合:

/自動車/ BMWます
1
、すべてのznodeノードは、ちょうど私たちの名前空間のJavaのような、ユニークなパスを持っているので、そのディレクトリ構造に基づいて、異なる情報を分離して明らかにしています。

主に以下のデータの一部が含まれているAのznode:

データ:データストレージのznode;
ACL:アクセスのznode記録、すなわち、どの又はIPノードにアクセスすることができ、
STAT:のznodeはZXID、バージョン番号、タイムスタンプ、データ長を含む様々なデータソースを含み、
チャイルド:子ノード参照;
2、飼育係の時計機構

私たちは、ウォッチとして理解とのznodeは、リスナーをバインド指定することができたときに、こののznodeに書き込みデータ(、setDataメソッドを作成、削除)が行われるのznodeの変更、これらのこのリスナーのリッスン非同期書き込み操作の後に要求ウォッチクライアントに通知を送信します。

次のように具体的な相互作用のプロセスは、次のとおりです。

クライアントがサーバーへのznodeノードデータを取得するためのgetDataメソッドを呼び出すと、trueに時計を設定します。サーバが要求を受信し、データノードを返し、時計パスのznodeウォッチャーに挿入した後WatchTableで(のznodeクライアントを見る)を維持。

znodeのウォッチを削除または更新する場合は、飼育係のサーバーは、クライアントに対応する非同期通知を対応のznode上のすべてのウォッチャーを見つけて、キーを対応するウォッチ表を削除し、ウォッチテーブルを探します:値を、

3、飼育係サービス登録及び発見プロセス分析
飼育係サービス登録及びメインアプリケーションは、主に以下のステップに分け、データ・モデルとのznodeウォッチャー機構飼育係であることを見出しました。

サービス登録:サービスプロバイダ(プロバイダ)を開始し、それは、そのようなアドレスのIPサービスプロバイダとして(ノード上のZooKeeperサーバーとデータ・ストレージ・サービスの飼育係サーバー登録されたサービス情報にサービスノードを作成します。そのような登録ユーザの登録サービス(ユーザ/レジスタ)のようなポートなど)。

サービス発見は:サービス利用者(消費者)が開始さは、それが自分の情報に基づいてサービスに依存したときに、飼育係のサーバーは、サービス情報とセットウォッチの登録を取得するために、サービス情報登録サービスプロバイダ情報を取得した後、ローカルにキャッシュされ、コール直接レジストリからユーザ登録サービス(ユーザ/レジスタ)とサービス呼び出しに見られるような飼育係サービス登録情報通話サービスから取得します。

サービス通知:サービスプロバイダが何らかの理由でダウンしているサービスを提供したりした後、しない消費者が取得するときに、サービスがサービス情報は、対応するノードに時計を提供しているため、対応するサービスノードの飼育係のサービスレジストリは、削除されますウォッチャーは、削除後に対応するノードをトリガするすべてのサービスの消費者は、飼育係レジストリは、受け取った通知に基づいてサービスを消費者にキャッシュ削除するには、サービス・ノードへの非同期通知に関連した、およびサービスのリストを更新します。

4.まとめ
この記事の我々の簡潔には、単純な原理飼育係のリアライズのサービス登録と発見、のznodeとウォッチャーの使用を紹介し、あなたは、分散登録と発見サービスを実現することができます。アリの最もよく知られているアプリケーションは、RPCフレームワークダボ配布され、我々は手助けをしたいです。
----------------
免責事項:この記事は元の記事CSDNブロガー「RonTech」で、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。 。
オリジナルリンクします。https://blog.csdn.net/zyhlwzy/article/details/101847565

おすすめ

転載: www.cnblogs.com/eryun/p/12045713.html