1.ダボとは何ですか。
ダボアリババオープンソースアプリケーションがRPCのパフォーマンスを介して出力と入力機能とサービスを実現することができ、それはシームレススプリングフレームワークと統合することができるように、高い性能の優れたサービス・フレームワークです。
リモートメソッド呼び出しのためのインターフェース、インテリジェントなフォールトトレランスと負荷分散、および自動登録やサービスの発見:ダボは、高性能、3つのコア機能を提供する軽量なオープンソースのJava RPCフレームワークです。
背景:
インターネットの急速な発展に伴い、Webスケールのアプリケーションは拡大し続け、最終的に我々は、従来の縦型アーキテクチャ(積分)を解決することができなかったことがわかりました。分散サービスアーキテクチャとストリームコンピューティングアーキテクチャが不可欠、アーキテクチャの秩序ある発展を確保するための管理システムが緊急に必要です。
全体的なアーキテクチャ
流量が非常に低い場合、唯一のアプリケーションは、すべての機能は、コストとデプロイ・ノードを削減するために一緒に配備されています。この時点で、データアクセスフレームワーク(ORM)は、CRUDは、ワークロード簡素化することです重要。
縦型アーキテクチャ
モノリシックアプリケーションインスタンスを追加することだけでなく高速アクセスでない場合、流量が増加すると、アプリケーションの効率を改善するための方法は、離散モノリシックアプリケーションに分割されます。この時点で、ためにフロントページのWebフレームワーク(MVC)の開発を加速するキーです。
分散型サービスアーキテクチャ
垂直アプリケーションが上昇すると、アプリケーション間の相互作用が避けられ、コアビジネスの一部は、独立したサービスプロバイダのサービスとして抽出徐々に安定したサービスセンターを形成するので、アプリケーションのフロントエンドは、より良いことができることです変化する市場の要求に応えインチ すばやく。このとき、用分散型サービスフレームワーク(RPC)の事業の再利用と統合の鍵です。
ストリーム・コンピューティング・アーキテクチャ
サービスが上昇すると、困難なキャパシティ・アセスメント、および小規模なサービスは、多くの場合、リソースの無駄です。これらの問題を解決するためには、トラフィック管理に応じてクラスタとクラスタの稼働率を向上させるために派遣センターに追加する必要があります。現在のところ、それはマシンのスケジューリングとリソース管理センターの利用率(SOA)を改善するために使用することが鍵です。
3.チャート:
ノードの役割の説明:
- プロバイダ:サービスプロバイダが公開されたサービス
- 消費者:コンシューマーサービスコールサービス
- レジストリ:サービスレジストリ、サービスの検出と構成を担当します
- モニター:量と時間のかかるサービスの監視センター、統計的なサービスコール
- コンテナ:コンテナサービスは、サービスのライフサイクル管理を実行しています
サービスの関係:
- コンテナは、起動負荷およびサービスプロバイダを実行する責任があります。
- あなたはその登録サービスを開始ProviderRegister。
- 登録のサブスクリプションサービスが必要な最初から消費者が始まります。
- それは長押しで、登録データコンシューマー接続の変更を変更したときに消費者の登録は、プロバイダのリストを返します。
- コンシューマとプロバイダは、アルゴリズムのバランスをとると、呼び出しソフト負荷のいずれかに基づいて選択され、それが失敗した場合、それは別のプロバイダを選択します。
- コンシューマとプロバイダの両方が毎分モニターにメモリと時間がかかるのサービスのコール、および統計の計算回数を送信します。
4.特長
接続性
- 登録を担当すると(そのようなディレクトリサービスなど)サービスのアドレスを検索し、起動時にレジストリを持つ唯一の相互作用プロバイダとコンシューマ、およびレジストリが要求を転送するため、低い圧力はありません登録
- 「モニター」は、統計情報がメモリプロバイダで初めてとなるサービスコールと時間がかかるの数を計算するための責任があり、消費者は、まとめてモニタに送信されました
- 「登録」と(ネットワークのオーバーヘッドは含まない)、時間がかかるの統計情報への「プロバイダ」サービス登録は、レジストリを直接アルゴリズムでLBに応じてサービスプロバイダのリストを取得し、そこから「モニター」「消費者」アドレスのに報告しました統計情報の提供者は、報告されたネットワークのオーバーヘッドを含め、モニターを消費します
- 登録接続例外はある長い接続、Moniterプロバイダとコンシューマの間
- 登録、意識長い接続、切断プロバイダ経由プロバイダは、登録イベントが消費者にプッシュします
- これは、すでに結果のキャッシュコンシューマープロバイダーリストので、地面に取得しても、すべてのプロバイダとコンシューマの登録やモニターのインスタンスを実行するには影響しません
- モニター登録と消費者のプロバイダに直接接続することができ、オプションであります
硬さ
- モニターのダウンタイムは、使用には影響しません、それはいくつかのサンプルデータを失うことになります
- データベースサーバに障害が発生した場合、登録サービスプロバイダは、これに消費者をそのキャッシュをチェックすることで、リストに戻りますが、任意の新しいサーバプロバイダのサービスを登録することができませんすることができます
- ピア・クラスタを登録し、任意のインスタンスが失敗したとき、それは自動的に別のクラスタに切り替わります
- すべてのインスタンスが失敗し、プロバイダを登録し、消費者はまだそのローカルキャッシュをチェックして通信することができる場合でも、
- サービスプロバイダステートレスで、ダウンタイムの1つのインスタンスは、使用には影響しません
- すべてのサービスプロバイダの後、サービスを利用することができない消費者、および再接続にSの障害が発生すると、サービスプロバイダを復元するために無期限に待機します
スケーラビリティ
- 登録は、動的なすべてのクライアントが自動的に新しいインスタンスを発見するでしょう、クラスタリングとしてそのインスタンスを増やしています。
- プロバイダはステートレスで、それが動的にインスタンスの展開を増加させることができ、およびレジストリは、消費者にプッシュ新しいサービスプロバイダ情報になります。
スケーラビリティ
さらに、サービスクラスタの拡大とITガバナンスの構造、さらにエスカレーション、動的に展開する必要がある、とは、現在サービスを配布されるアーキテクチャは、抵抗をもたらすことはありません。これは、アーキテクチャの将来です。
5.
provider.xmlの:
<! - 暴露服务- > < ダボ:サービスインターフェース= "com.xxx.XxxService" REF = "xxxService" /> <! - 服务实现- > < 豆ID = "xxxService" クラス= "comの。 xxx.XxxServiceImpl」/>
consumer.xml:
<! - 参照リモートサービス- > < ダボ:参考言及ID以上= "xxxService" インターフェイス= "com.xxxXxxService" />
参考ダボ公式サイト:http://dubbo.apache.org/