Tous les produits
Search
Centre de documentation

Enterprise Distributed Application Service:Guide du développeur Dubbo

Dernière mise à jour :Aug 10, 2026

Enterprise Distributed Application Service (EDAS) prend en charge Apache Dubbo pour la création d'applications microservices. Ce guide présente le système d'extension de l'interface SPI (Service Provider Interface) de Dubbo, les mécanismes internes du framework et ses principes de conception.

Fonctionnement du système d'extension SPI

Dubbo utilise un mécanisme SPI léger pour préserver la modularité de son noyau. Chaque composant majeur (protocoles, équilibreurs de charge, routeurs, registres) est défini comme un point d'extension enfichable. Vous pouvez ainsi :

  • Remplacer les implémentations intégrées en modifiant une seule propriété de configuration, sans toucher au code du framework.

  • Ajouter des implémentations personnalisées en implémentant une interface Java et en l'enregistrant via le fichier SPI.

  • Étendre le comportement de manière transparente : Dubbo traite les extensions tierces et les implémentations intégrées sur un pied d'égalité.

Pour comprendre l'architecture sous-jacente, commencez par consulter les rubriques sur la conception du framework et le chargement SPI ci-dessous.

Implémentations des extensions SPI

Dubbo définit plus de 20 points d'extension, organisés ici par fonction. Chaque point d'extension correspond à une interface Java qui accepte des implémentations personnalisées.

Gestion RPC et du trafic

|
**Point d'extension**
|
**Fonction**
| | --- | --- | |
Protocol
|
Protocole réseau pour les appels distants
| |
Filter
|
Chaîne de filtres de requêtes et de réponses pour les préoccupations transversales, telles que la journalisation ou l'authentification
| |
Cluster
|
Stratégie de tolérance aux pannes en cas d'échec d'un appel (par exemple, basculement, échec rapide, exécution parallèle)
| |
Router
|
Règles de routage déterminant les fournisseurs destinataires du trafic
| |
LoadBalance
|
Stratégie de distribution des requêtes entre plusieurs fournisseurs
| |
Merger
|
Logique de fusion des résultats pour les invocations parallèles
|



























Découverte de services et configuration

|
**Point d'extension**
|
**Fonction**
| | --- | --- | |
Registry
|
Intégration du registre de services
| |
Monitor
|
Collecte de métriques et rapport des données de surveillance
|











Transport et sérialisation

|
**Point d'extension**
|
**Fonction**
| | --- | --- | |
Transporter
|
Couche de transport réseau
| |
Exchanger
|
Modèle d'échange requête-réponse sur la couche de transport
| |
Networker
|
Gestion de la topologie réseau pour les scénarios multi-registres
| |
Serialization
|
Format de sérialisation des données
|



















Cycle de vie et proxys

|
**Point d'extension**
|
**Fonction**
| | --- | --- | |
InvokerListener
|
Rappel déclenché lors des événements d'invocation de service
| |
ExporterListener
|
Rappel déclenché lors des événements d'exportation de service
| |
ExtensionFactory
|
Usine de création et de gestion des instances d'extension
| |
ProxyFactory
|
Usine de création des proxys de service
| |
Compiler
|
Compilation dynamique du code source Java
| |
Dispatcher
|
Stratégie de répartition des threads pour les messages entrants
| |
ThreadPool
|
Stratégie de pool de threads pour l'exécution des services
|































Diagnostic et utilitaires

|
**Point d'extension**
|
**Fonction**
| | --- | --- | |
TelnetHandler
|
Gestionnaire des commandes de gestion d'exécution basées sur Telnet
| |
StatusChecker
|
Logique de vérification de l'état de santé pour le rapport d'état du service
| |
PageHandler
|
Rendu de la page d'état pour le serveur HTTP intégré
| |
Container
|
Gestion du cycle de vie du conteneur de service
| |
Cache
|
Stratégie de mise en cache des résultats pour les invocations répétées
| |
Validation
|
Validation des paramètres avant l'invocation
| |
LoggerAdapter
|
Adaptateur pour intégrer différents frameworks de journalisation
|































Mécanismes internes du framework

Ces rubriques expliquent la structure de Dubbo et le fonctionnement interne du mécanisme SPI.

|
**Rubrique**
|
**Contenu**
| | --- | --- | |
Build du code source
|
Compilation du code source Dubbo à partir du dépôt
| |
Conception du framework
|
Architecture globale, conception en couches et dépendances des modules
| |
Chargement SPI
|
Mécanisme de découverte, de chargement et d'instanciation des extensions SPI par Dubbo
| |
Détails d'implémentation
|
Implémentation interne des composants principaux
| |
Centre de configuration
|
Gestion centralisée de la configuration pour les services distribués
| |
Accord public
|
Conventions et contrats de protocole public partagés entre les composants Dubbo
|



























Principes de conception

Le framework Dubbo suit un ensemble de principes de conception documentés dans ces rubriques. Utilisez-les comme référence lorsque vous contribuez au framework ou créez des extensions personnalisées.

|
**Rubrique**
|
**Contenu**
| | --- | --- | |
Attention aux détails
|
Importance des cas limites et des décisions de conception subtiles dans le code du framework
| |
Modèles de conception fondamentaux
|
Principaux modèles de conception et conventions utilisés dans toute la base de code
| |
Extensibilité et extension incrémentielle
|
Conception d'extensions rétrocompatibles et composables
| |
Conception de la configuration
|
Lignes directrices pour la conception des paramètres de configuration et des valeurs par défaut
| |
Robustesse
|
Gestion des erreurs, modèles de résilience et programmation défensive dans le framework
| |
Conception anti-erreur
|
Prévention des mauvaises utilisations grâce à des API claires, des valeurs par défaut judicieuses et la validation des entrées
| |
Refactoring des points d'extension
|
Quand et comment refactoriser les interfaces des points d'extension
|































Normes de qualité du code

|
**Rubrique**
|
**Contenu**
| | --- | --- | |
Gestion des versions
|
Conventions de numérotation des versions et garanties de compatibilité
| |
Liste de contrôle
|
Liste de vérification pré-publication pour les modifications du framework
| |
Mauvaises pratiques de code
|
Anti-modèles courants à éviter dans le code du framework Dubbo
| |
Conventions de codage
|
Style de code, nommage et normes de formatage
| |
Tests de compatibilité
|
Stratégie de test pour la compatibilité ascendante et descendante
|