1.登録センターの概要
ダボマイクロサービスシステムでは、レジストリは、分散環境.Dubbo登録のコア構成要素の一つであり、マイクロサービスのうち、レジストリを介して配信ノード間のリンクであることを見出した。その主な役割次のように:
- 動的に参加します。サービスプロバイダは、設定ファイルを更新するために、1で、他の消費者にさらさ自分自身を登録することで、中心に消費者の障害1を移動することができます。
- ダイナミックな発見。消費者はそれを有効にするには、サービスを再起動することなく、ダイナミックな新しい設定、ルーティングルールや新しいサービスプロバイダを知覚します。
- 動的調整。レジストリは、新しいパラメータが自動的に関連付けられているすべてのサービスノードを更新し、パラメータの動的調整をサポートしています。
- 統一された構成。ローカル設定の矛盾は、各サービスのコンフィギュレーションを引き起こすことは避けてください。
ダボは、以下のように、5つのサブモジュールを含む、レジスタダボのソースコード・モジュールをレジストリ。
モジュール名 | モジュール説明 |
---|---|
ダボ登録-API | これは、すべてのレジストリと抽象API実装クラスを含み |
ダボ・レジスタ、飼育係 | 飼育係達成登録センターとして使用します |
ダボ・レジスタのRedis | Redisのは、インプリメンテーション・レジストリーとして使用します |
ダボ・レジスタのデフォルト | デフォルトのメモリ実装に基づいてダボ |
ダボ登録マルチキャスト | サービスの登録と発見マルチキャストモード |
2.ワークフロー
- サービスが起動すると、レジストリへの独自のメタデータ情報を書き込みます、そしてそれは、構成メタデータをサブスクライブします。
- 消費者はまた、独自のレジストリがメタデータとしてスタートし、書き込み、およびサービスプロバイダ、ルーティングおよび構成メタデータ情報を購読することができます。
- サービス管理センター(ダボ-adminが)、また、すべての消費者、サービスプロバイダ、ルーティングおよび構成メタデータ情報にサブスクライブします。
- すべてのサービスプロバイダが去るか、新しいサービスプロバイダに加入する必要がある場合には、レジストリサービスプロバイダディレクトリの変更は、消費者への動的な変更通知メッセージを発生し、サービス管理センター。
- 消費者がサービスコールを開始すると、通話が監視センター(ダボモニタ-シンプル)に報告された非同期、統計情報になります。
概説3.Zookeeper原則
飼育係レジストリは、ツリー構造、永続的なノードへの各ノードのタイプ、ノード、ノードとノードの一時的な仮オーダーの持続オーダーです。
- 永続ノード:ノードはサービス登録を確実に失われていない、登録センターが存在して再起動します。
- ノードの永続的な順序:永続的な増加ノードの配列の能力の特性に基づいてノード。
- 一時的なノード:登録サービスの接続が失われた後、または残業セッション、登録されたノードが自動的に削除されます。
- ノードの一時的な順序:一時ノードノードの特性に基づいて、注文の能力を増大させます。
ダボは、レジストリとして飼育係を使用し、それは一時的なノードとノードを持続作成する作成したオーダーの2種類が必要とされていないされています。
次のように初期の飼育係のダボツリーは次のとおりです。
+ /dubbo
+ -- servicce
+--providers
+--consumers
+--routers
+--configurators
4.ツリー構造の関係
ルートノード(1)ツリーの中心は、サービス・インターフェース複数の次のパケットを登録し、ユーザの設定値からのパケット<ダボ:登録>グループ属性。
(2)サービス・インターフェースは、このパスが永続的ノードであるサブディレクトリプロバイダ、消費者、ルート、コンフィギュレータの4つのタイプを含みます。
(3)サービスプロバイダディレクトリ(/ダボ/サービス/プロバイダ)は、以下のインターフェイスを複数のサービスURLメタデータ情報を含みます。
(4)顧客サービスのディレクトリ(/ダボ/サービス/消費者)は、次の消費者インタフェースは、複数のURLのメタデータ情報を持っている含まれています。
(5)ルーティング設定ディレクトリ(/ダボ/サービス/ルート)戦略より多くの消費者のメタデータルーティング情報を、以下のURLが含まれています。
(6)動的設定ディレクトリ(/ダボ/サービス/コンフィギュレータの)URLポリシーからメタデータの次の消費者情報を複数含みます。
ダボでレジストリを有効にし、次のように参照することができます。
<beans>
<!--适用于Zookeeper一个集群有多个节点,多个IP和端口用逗号分隔-->
<dubbo:registry protocol="zookeeper" address="ip:port,ip:port" />
<!--适用于Zookeeper一个集群有多个节点,多个IP和端口用竖线分隔-->
<dubbo:registry protocol="zookeeper" address="ip:port|ip:port" />
</beans>