高速サービスフレームワーク (HSF) は、Alibaba Groupで広く使用されている分散リモートプロシージャコール (RPC) サービスフレームワークです。
概要
HSFは、異なるビジネスシステム間の仲介者として機能し、これらのシステムを分離し、相互依存を少なくするのに役立ちます。 HSFは、分散アプリケーションのサービス公開と呼び出しメソッドを統合します。 HSFは、リモート通信、シリアル化、パフォーマンス損失、同期および非同期呼び出しの実装など、分散アーキテクチャに含まれる複雑な技術的操作を管理します。 HSFを使用すると、分散アプリケーションをすばやく開発し、パブリック関数モジュールを提供または使用できます。
HSFアーキテクチャ
HSFは、クライアント側で完全に機能するRPCフレームワークであり、中央クラスタを介して要求を処理しません。 すべてのHSFサービスは、ポイントツーポイントモードでサービスコンシューマとサービスプロバイダの間で呼び出されます。 完全な分散サービスシステムを実装するには、HSFは次の外部システムに依存する必要があります。
- サービスプロバイダー
サービスプロバイダは、ポート12200を使用して、要求を受信し、サービスを提供し、アドレス情報をアドレスレジストリに公開する。
- サービスコンシューマ
サービスコンシューマは、アドレスレジストリを使用することによってサービスに加入し、加入したサービスのアドレス情報に基づいてコールを開始する。 アドレスレジストリは呼び出しには関与しません。
- EDAS アドレスレジストリ
HSFは、アドレスレジストリを介してのみサービス検出を実装できます。 それ以外の場合、HSFはポイントツーポイントコールのみを実装できます。
サービスプロバイダは、そのサービス情報を公開することができないので、サービスコンシューマは、呼び出したいサービスを取得することができない。 この場合、アドレスレジストリは、サービスの登録と発見を可能にする仲介者として機能します。
- EDAS 永続構成センター
永続構成センターは、HSFサービスのガバナンスルールを格納するために使用されます。 起動時に、HSFコンシューマは、ルーティングルール、グループ化ルール、および重み付けルールなどの必要なルールを永続的構成センターからサブスクライブする。 このようにして、消費者は、通話中にアドレス選択ロジックを決定することができる。
- EDAS メタデータストレージセンター
メタデータは、メソッドおよびパラメータ構造など、HSFサービスに関連する情報を含む。 メタデータはHSFサービスの呼び出しには影響しません。 したがって、メタデータストレージセンターはオプションです。 サービスのO&Mを容易にするために、HSFが起動すると、HSFコンシューマはメタデータをメタデータストレージセンターに報告します。
- EDAS コンソール
EDAS コンソールは、レジストリ、永続構成センター、およびメタデータストレージセンターを接続します。 コンソールは、サービスクエリやサービスガバナンス規則の管理など、サービスO&M機能を提供します。 これにより、R&D効率が向上し、HSFサービスのO&Mが容易になります。
特徴
分散RPCフレームワークHSFは、次のサービス呼び出しメソッドをサポートします。
- 同期呼び出し
デフォルトでは、HSFコンシューマーは同期呼び出しを使用してサービスを消費し、各呼び出しの結果が返されるのを待つ必要があります。
- 非同期呼び出し HSFは非同期呼び出しをサポートしているため、HSFコンシューマはすべてのサービス呼び出しの結果が返されるのを待つ必要はありません。 FutureメソッドとCallbackメソッドを使用して非同期呼び出しを行うことができます。
- 将来の呼び出し
HSFコンシューマは、HSFResponseFuture.getResponse (int timeout) を呼び出して、返された呼び出しの結果を取得します。
- コールバック呼び出し
呼び出しは、HSFによって提供される内部コールバック機構を使用して行われる。 HSFサービスが使用され、結果が返された後、HSFは
HSFResponseCallback操作を呼び出します。 次に、コンシューマはコールバック通知からコール結果を取得します。
- 将来の呼び出し
- ジェネリック呼び出し
通常、HSFコンシューマーはサービスを呼び出し、SDKのAPIを使用してサービスプロバイダーから返された値を取得します。 ただし、汎用呼び出しでは、HSFコンシューマーがSDKをバイパスし、サービスを直接呼び出してデータを取得できます。 プラットフォームベースのサービスのジェネリックコールを実装することで、SDKへの依存を減らし、軽量システムを構築できます。
- トレースフィルター拡張
HSFにはコールフィルターが組み込まれており、コールフィルター拡張ポイントを識別してHSFコールトレースに統合できます。 これにより、拡張はHSF要求を処理することができる。
アプリケーション開発方法
HSFを使用すると、Ali-TomcatとPandora Bootでアプリケーションを開発できます。
- Ali-Tomcat: このメソッドは、Ali-TomcatとPandoraに依存し、サービスの登録と検出、暗黙的なパラメーターの受け渡し、非同期呼び出し、汎用呼び出し、トレースフィルター拡張などの完全なHSF機能を提供します。 アプリケーションは、WARパッケージの形式でデプロイする必要があります。
- Pandora Boot: このメソッドはPandoraに依存し、サービス登録、サービス検出、非同期呼び出しなど、いくつかのHSF機能を提供します。 アプリケーションは、展開用に実行可能なJARパッケージにコンパイルする必要があります。