High-speed Service Framework (HSF) は、Alibaba Group で広く使用されている分散型リモートプロシージャコール (RPC) フレームワークです。HSF は、統一されたサービス公開および呼び出しモデルを通じて分散アプリケーションを疎結合化します。リモート通信、シリアル化、性能劣化、同期呼び出し、および非同期呼び出しを処理するため、アプリケーションコードはビジネスロジックに集中できます。
Dubbo 3.0 は、オープンソース Dubbo と HSF を統合します。既存の HSFアプリケーションをアップグレードするには、「HSFアプリケーションをDubbo 3.0アプリケーションにアップグレードする」をご参照ください。アップグレードは、Enterprise Distributed Application Service (EDAS) コンソールを通じて実行します。アップグレードされたアプリケーションは、元の方法、または EDAS が提供する Dubboアプリケーション向けのマイクロサービスガバナンス機能を使用して開発できます。
アーキテクチャ
HSF は完全にクライアント側で実行され、中央クラスターはリクエストを処理しません。すべてのサービス呼び出しは、プロバイダーとコンシューマー間のポイントツーポイントです。HSF は、サービス検出、ガバナンス、および運用可視性のために、いくつかの外部システムに依存しています。
データプレーン
データプレーンは、RPC呼び出しを通じてデータを直接交換するサービスプロバイダーとサービスコンシューマーで構成されます。
| コンポーネント | 役割 |
|---|---|
| サービスプロバイダー | ポート12200でリッスンし、受信リクエストを処理し、そのアドレスをアドレスレジストリに公開します。 |
| サービスコンシューマー | レジストリを通じてサービスアドレスをサブスクライブし、取得したアドレス情報に基づいてポイントツーポイント呼び出しを開始します。アドレスレジストリは呼び出しに関与しません。 |
コントロールプレーン
コントロールプレーンは、サービス検出、構成、および運用可視性を管理します。
| コンポーネント | 役割 | 必須 |
|---|---|---|
| アドレスレジストリ | サービス登録と検出のためにプロバイダーアドレスを保存します。これがない場合、直接のポイントツーポイント呼び出しのみが可能です。 | はい |
| 永続構成センター | ルーティング、グループ化、重み付けルールなどのガバナンスルールを保存します。コンシューマーは起動時にこれらのルールをサブスクライブして、アドレス選択ロジックを決定します。 | 明示的に記載されていません |
| メタデータストレージセンター | メソッドシグネチャやパラメーター構造などのサービスメタデータを保存します。サービス呼び出しには影響しません。HSF が起動すると、コンシューマーはサービス運用保守 (O&M) を容易にするためにメタデータストレージセンターにメタデータをレポートします。 | いいえ |
| EDASコンソール | レジストリ、構成センター、メタデータストレージセンターを接続します。サービスクエリ、ガバナンスルール管理、およびその他の運用機能を提供します。 | いいえ |
サポートされている呼び出しメソッド
HSF は次の呼び出しメソッドをサポートしています。
| メソッド | 説明 |
|---|---|
| 同期 | デフォルトメソッド。コンシューマーはプロバイダーが結果を返すまでブロックします。 |
| 非同期 (Future) | コンシューマーは実行を継続し、後で HSFResponseFuture.getResponse(int timeout) を通じて結果を取得します。 |
| 非同期 (コールバック) | コンシューマーは HSFResponseCallback ハンドラを登録します。結果が利用可能になると、HSF はハンドラを呼び出します。 |
| 汎用 | コンシューマーはプロバイダーAPIインターフェースをインポートせずにサービスを呼び出します。プロバイダーSDKに依存しない軽量なプラットフォームレベルの統合を構築するのに役立ちます。 |
トレースフィルター拡張
HSF には、組み込みの呼び出しフィルターメカニズムが含まれています。HSF 呼び出しトレースに統合されるカスタムフィルター拡張ポイントを実装できます。これらの拡張機能は HSF リクエストを処理します。
アプリケーション開発
HSF は、次の2つの開発およびデプロイモデルをサポートしています。
| モデル | ランタイム依存関係 | サポートされている機能 | デプロイ形式 |
|---|---|---|---|
| Ali-Tomcat | Ali-Tomcat + Pandora | サービス登録と検出、暗黙的なパラメーター渡し、非同期呼び出し、汎用呼び出し、トレースフィルター拡張 | WARパッケージ |
| Pandora Boot | Pandora | サービス登録、サービス検出、非同期呼び出し | 実行可能JARパッケージ |