High-speed Service Framework (HSF) est un framework RPC (Remote Procedure Call) distribué, largement utilisé au sein du groupe Alibaba. HSF découple les applications distribuées grâce à un modèle unifié de publication et d'invocation des services. Il gère la communication distante, la sérialisation, la perte de performances ainsi que les invocations synchrones et asynchrones, permettant au code applicatif de se concentrer sur la logique métier.
Dubbo 3.0 intègre Dubbo open source et HSF. Pour mettre à niveau une application HSF existante, consultez la rubrique Mettre à jour une application HSF vers une application Dubbo 3.0. Effectuez cette mise à niveau via la console Enterprise Distributed Application Service (EDAS). Développez l'application mise à niveau en utilisant la méthode d'origine ou la fonctionnalité de gouvernance des microservices fournie par EDAS pour les applications Dubbo.
Architecture
HSF s'exécute entièrement côté client : aucun cluster central ne traite les requêtes. Tous les appels de service s'effectuent de point à point entre les fournisseurs et les consommateurs. HSF s'appuie sur plusieurs systèmes externes pour la découverte de services, la gouvernance et la visibilité opérationnelle.
Plan de données
Le plan de données comprend les fournisseurs et les consommateurs de services qui échangent des données directement via des appels RPC.
| Composant | Rôle |
|---|---|
| Fournisseur de service | Écoute sur le port 12200, traite les requêtes entrantes et publie son adresse dans le registre d'adresses. |
| Consommateur de service | S'abonne aux adresses des services via le registre et initie des appels de point à point selon les informations d'adresse récupérées. Le registre d'adresses n'intervient pas lors des appels. |
Plan de contrôle
Le plan de contrôle gère la découverte de services, la configuration et la visibilité opérationnelle.
| Composant | Rôle | Requis |
|---|---|---|
| Registre d'adresses | Stocke les adresses des fournisseurs pour l'enregistrement et la découverte des services. Sans ce composant, seuls les appels directs de point à point sont possibles. | Oui |
| Centre de configuration persistant | Stocke les règles de gouvernance (routage, regroupement, pondération). Les consommateurs s'abonnent à ces règles au démarrage pour déterminer la logique de sélection des adresses. | Non spécifié explicitement |
| Centre de stockage des métadonnées | Stocke les métadonnées des services, telles que les signatures de méthodes et les structures de paramètres. Cela n'affecte pas les appels de service. Au démarrage de HSF, le consommateur signale les métadonnées au centre de stockage pour faciliter l'exploitation et la maintenance des services. | Non |
| Console EDAS | Connecte le registre, le centre de configuration et le centre de stockage des métadonnées. Fournit des fonctionnalités opérationnelles telles que la requête de services et la gestion des règles de gouvernance. | Non |
Méthodes d'appel prises en charge
HSF prend en charge les méthodes d'appel suivantes :
| Méthode | Description |
|---|---|
| Synchrone | Méthode par défaut. Le consommateur reste bloqué jusqu'à ce que le fournisseur renvoie un résultat. |
| Asynchrone (Future) | Le consommateur poursuit son exécution et récupère les résultats ultérieurement via HSFResponseFuture.getResponse(int timeout). |
| Asynchrone (Callback) | Le consommateur enregistre un gestionnaire HSFResponseCallback. HSF invoque ce gestionnaire lorsque les résultats sont disponibles. |
| Générique | Le consommateur appelle des services sans importer les interfaces API du fournisseur. Cette approche est utile pour créer des intégrations légères au niveau de la plateforme qui ne dépendent pas des SDK du fournisseur. |
Extension de filtre de trace
HSF inclut un mécanisme intégré de filtrage des appels. Implémentez des points d'extension de filtres personnalisés qui s'intègrent à la trace d'appel HSF. Ces extensions traitent les requêtes HSF.
Développement d'applications
HSF prend en charge deux modèles de développement et de déploiement :
| Modèle | Dépendance d'exécution | Fonctionnalités prises en charge | Format de déploiement |
|---|---|---|---|
| Ali-Tomcat | Ali-Tomcat + Pandora | Enregistrement et découverte de services, transmission implicite de paramètres, appels asynchrones, appels génériques, extension de filtre de trace | Package WAR |
| Pandora Boot | Pandora | Enregistrement de services, découverte de services, appels asynchrones | Package JAR exécutable |