ダブボのリクエスト処理フローと原則
ダボの要求プロセスと原則は以下のとおりである。
- サービスの利用者はレジストリセンターにサブスクリプションリクエストを開始し、特定のサービスの提供者情報を取得します。
- レジストリに提供者がリストされることで、消費者はそれらのアドレスがわかります。
- 負荷分散アルゴリズムによって、利用者はプロバイダーを選択できます。
- 消費者はリクエストオブジェクトにリクエストパラメータ、インターフェース情報などをカプセル化して、リモートコールリクエストを送信します。
- 利用ネットワーク伝送層を介して消費者から提供者に要求オブジェクトが送信されます。
- リクエストを受け取ったプロバイダーは、リクエストオブジェクトをパースして、インターフェイス名、メソッド名、パラメータなどの情報を取得します。
- 提供者は、リフレクションによって対応するサービス実装メソッドを呼び出し、その結果をレスポンスオブジェクトに格納します。
- プロバイダーはレスポンスオブジェクトをネットワークトランスポートレイヤーを経由して消費者へ送信する。
- 消費者はレスポンスオブジェクトを受け取った後、呼び出し結果を解析して呼び出し元に返します。
ダボの仕組みの基本原則は、以下の通りです。
- レジストリ:Dubboは、サービスアドレや負荷状況などのサービスプロバイダ情報を管理するためにレジストリを使用します。コンシューマは、レジストリから利用可能なプロバイダのリストを取得できます。
- 遠隔呼び出し:Dubboはネットワークの転送層で遠隔呼び出しを実現しており、消費者はリクエストオブジェクトを直列化してプロバイダーに送り、プロバイダーはリクエストの受信後逆直列化して処理し、最後に、応答結果を直列化して消費者に返します。
- ロードバランシング:Dubboはランダム、ラウンドロビン、加重などのロードバランシングアルゴリズムをサポートしています。コンシューマは、自身のニーズに応じて、適切なロードバランシングアルゴリズムを選択してプロバイダを選択し、負荷を分散できます。
- クラスタ耐障害:Dubboはフェイルオーバーやフェイルセーフなど、複数のクラスタ耐障害策略を提供します。あるプロバイダに障害が発生した場合、Dubboはサービスの可用性を確保するために自動的に別の利用可能なプロバイダに切り替えることができます。
- サービスガバナンス:Dubboは、流量制御、ダウングレードポリシー、同時実行制御などを含む、豊富なサービスガバナンス機能を提供します。これらの機能により、開発者はサービスの運用状況をより適切に管理および監視できます。
つまり、ダブボは登録センターを通してサービス提供者の情報を管理し、リモートコールを通してサービス呼び出しを行い、ロードバランサ、クラスタ耐障性、サービスガバナンスなどの機能を通して、システムの可用性と性能を高めます。