Tutoriel Dubbo populaire (1): Qu'est-ce que Dubbo?

La plupart des éléments suivants du document officiel Dubbo, le document adresses documentation utilisateur

1 Qu'est-ce que Dubbo?

Les travailleurs doivent d'abord affûter leurs outils pour faire de leur mieux, alors qu'est-ce que Dubbo exactement? Nous devons le définir.

Dubbo est un framework de services distribués open source qui permet aux applications d'implémenter des fonctions de sortie et d'entrée de service via un RPC haute performance et peut être intégré de manière transparente au framework Spring.

Dubbo est un framework Java RPC open source léger et performant qui offre trois capacités principales: invocation de méthode distante orientée interface, tolérance aux pannes et équilibrage de charge intelligents, et enregistrement et découverte automatiques des services.

2 Pourquoi avons-nous besoin de Dubbo?

Avec le développement d'Internet, l'échelle des applications de sites Web peut continuer de s'étendre. L'époque où il n'y avait plus qu'un serveur pour exécuter toutes les fonctions est révolue. Une architecture de services distribués est impérative. Nous avons un besoin urgent d'un système de gouvernance L'évolution méthodique de l'architecture.

Avant un service à grande échelle, l'application peut simplement exposer et référencer le service distant, l'appeler en configurant l'URL du service et équilibrer la charge via du matériel tel que F5.

Avec l'augmentation du trafic et l'itération de l'entreprise, la relation entre les applications et les applications devient progressivement plus compliquée et les problèmes suivants peuvent survenir:

  1. Lorsqu'il y a de plus en plus de services, la gestion de la configuration des URL de service devient très difficile, et la pression ponctuelle de l'équilibreur de charge matériel F5 augmente également
  2. Quand il se développe, les dépendances entre les services deviennent complexes et manquantes, et il est impossible de dire quelle application doit être démarrée avant quelle application, et l'architecte ne peut pas décrire complètement la relation architecturale de l'application.
  3. Ensuite, le nombre d'appels de service devient de plus en plus important, et le problème de capacité du service est exposé. Quelle assistance machine est nécessaire pour ce service? Quand dois-je ajouter la machine?

Alors, comment devrait-il être résolu? Les trois problèmes ci-dessus sont également les besoins les plus fondamentaux de Dubbo. Les solutions à ces trois problèmes sont les suivantes:

  1. Un centre d'enregistrement des services est nécessaire pour enregistrer et découvrir dynamiquement les services afin de rendre la localisation des services transparente. Et en obtenant la liste d'adresses du fournisseur de services du côté du consommateur, l'équilibrage de la charge logicielle et le basculement sont réalisés, ce qui réduit la dépendance à l'égard de l'équilibreur de charge matériel F5 et réduit également une partie du coût
  2. Besoin de dessiner automatiquement le graphique de dépendance entre les applications pour aider les architectes à trier la relation
  3. Le volume d'appels quotidien et le temps de réponse du service sont comptés comme un indice de référence pour la planification de la capacité; le poids peut être ajusté dynamiquement, et le poids d'une machine a été augmenté en ligne, et le temps de réponse est enregistré pendant l'augmentation Modifie jusqu'à ce que le temps de réponse atteigne le seuil, enregistrez le nombre de visites à ce moment, puis multipliez le nombre de visites par le nombre de machines pour déduire la capacité totale

Insérez la description de l'image ici
L'objectif principal de Dubbo est de résoudre les trois problèmes ci-dessus. A partir du diagramme de gouvernance des services de Dubbo, nous pouvons constater que Duboo résout une série de problèmes causés par l'évolution de l'architecture.

3 Architecture Dubbo

Insérez la description de l'image ici
La description des rôles de nœud est la suivante:

  1. Fournisseur: fournisseur de services qui expose le service
  2. Consommateur: consommateur de services qui appelle des services distants
  3. Registre: Registre pour l'enregistrement et la découverte de services
  4. Moniteur: un centre de surveillance qui compte le nombre et le temps des appels de service
  5. Conteneur: Service exécutant un conteneur

La relation d'appel est la suivante:

  1. Le conteneur de services est responsable du démarrage, du chargement et de l'exécution du fournisseur de services
  2. Lorsque le fournisseur de services démarre, il enregistre son propre service auprès du centre d'inscription
  3. Lorsque les consommateurs de services commencent, ils s'abonnent au centre d'inscription pour les services dont ils ont besoin
  4. Le centre d'inscription renvoie la liste d'adresses du fournisseur de services au consommateur. En cas de changement, le centre d'inscription transmet les données modifiées au consommateur en fonction de la longue connexion.
  5. Les consommateurs de services, dans la liste d'adresses des fournisseurs, en fonction de l'algorithme d'équilibrage de la charge logicielle, choisissent un fournisseur à appeler, si l'appel échoue, puis choisissez un autre appel
  6. Service clients et fournisseurs, accumule les temps d'appel et le temps d'appel en mémoire et envoie régulièrement des données statistiques au centre de surveillance toutes les minutes
Publié 151 articles originaux · loué 317 · 40 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/Geffin/article/details/105543478
conseillé
Classement