Table des matières
1. Description de la relation d'appel Dubbo
1.1 Composants
1.2 Description du processus de démarrage et d'exécution
Maison Java javaDidacticiel Quelle est la méthode de conception globale de l'architecture Java Dubbo ?

Quelle est la méthode de conception globale de l'architecture Java Dubbo ?

Apr 27, 2023 pm 09:52 PM
java dubbo

    1. Description de la relation d'appel Dubbo

    java Dubbo架构整体设计方法是什么

    1.1 Composants

    Ici, elle se compose principalement de quatre parties :

    weight Fournisseur : le fournisseur de services qui expose le service
    Protocole : responsable des fournisseurs et consommateurs Données d'interaction de protocole entre les fournisseurs
    Service : informations de service métier réelles, qui peuvent être comprises comme des interfaces et des implémentations
    Conteneur : l'environnement d'exploitation de Dubbo
    weight Consommateur : le consommateur de services qui appelle les services distants
    Protocole : responsable de la relation entre le fournisseur et les données d'interaction du protocole consommateur entre
    Cluster : perçoit les informations de liste du côté du fournisseur
    Proxy : il peut être compris comme le proxy d'appel de service du fournisseur, qui reprend la logique d'appel de l'interface dans le consommateur
    Quantity Register : centre d'enregistrement, utilisé pour découverte et routage des services Configuration et autres travaux, les fournisseurs et les consommateurs s'enregistreront ici
    ● Moniteur : utilisé pour les statistiques de données sur les fournisseurs et les consommateurs, telles que la fréquence des appels, le nombre de réussites et d'échecs, etc.

    1.2 Description du processus de démarrage et d'exécution

    ● Le côté fournisseur est démarré et le conteneur est responsable du chargement des informations sur le service et de leur enregistrement dans le centre d'enregistrement via le protocole.
    ● Le côté consommateur est démarré, détectant les informations du fournisseur en écoutant la liste des fournisseurs et lorsque le côté fournisseur est démarré. les changements de fournisseur seront notifiés via le centre d'enregistrement en temps opportun. Informer le consommateur
    Quantity Le consommateur initie une demande via le module Proxy
    weight Le consommateur utilise le module Cluster pour sélectionner le véritable fournisseur à appeler ; le consommateur utilise le protocole dans le consommateur pour envoyer des informations au fournisseur ;
    Quantity Les informations du consommateur du fournisseur sont traitées via le module Protocole
    Quantity ; Enfin, elles sont traitées par le service du fournisseur

    2. Lien d'appel global

    java Dubbo架构整体设计方法是什么

    Description ; : Le vert clair représente la portée du producteur du service, le bleu clair représente le consommateur du service La portée de l'appelant, la flèche rouge représente la direction de l'appel : couche de logique métier -> couche RPC (appel de procédure distante) -> Remoting (appel de procédure distante) transmission de données)

    Le processus d'appel global est le suivant :

    Quantity Les consommateurs l'effectuent via l'interface. Les appels de méthode sont uniformément transmis au proxy du côté du consommateur et les objets proxy sont créés via la technologie javassist de ProxyFactory. jdk est utilisé ici

    Quantity et transmis au module Filter pour effectuer des requêtes de filtrage unifiées
    Quantity Vient ensuite la logique d'appel de l'invoker la plus importante
    ○ Lisez les informations de la configuration via l'annuaire, et enfin obtenez tous les invokers via la méthode de liste
    ○ Grâce le module Cluster, sélectionnez la liste des Invokers en fonction des règles de routage spécifiques sélectionnées
    ○ Via le module LoadBalance, sélectionnez un Invoker spécifique en fonction de la politique d'équilibrage de charge. Traitement de la requête
    ○ Si une erreur se produit lors de l'exécution et que le mécanisme de nouvelle tentative est configuré à l'étape Consommateur, l'exécution sera réessayée
    Quantity Continuez à passer par le filtre pour encapsuler la fonction d'exécution avant et après, et l'invoker sélectionne le protocole d'exécution spécifique
    gip Le client effectue l'encodage et le séquençage, puis envoie les données
    ● Atteignez la couche Serveur dans le Fournisseur pour décoder et sérialiser les données reçues
    Quantity Utilisez l'Exportateur pour sélectionner l'exécuteur
    ● Laissez le Filtre effectuer un filtrage côté fournisseur et atteindre l'exécuteur de l'Invoker
    ● Pass Invoker appelle l'implémentation spécifique du interface, puis renvoie le résultat

    3. Conception globale de Dubbo

    java Dubbo架构整体设计方法是什么

    Description de la légende :

    ● Le fond bleu clair à gauche sur l'image est l'interface utilisée par le consommateur du service, et la lumière fond vert à droite L'interface utilisée par le prestataire L'interface située sur l'axe central est utilisée par les deux parties.

    Quantity La figure est divisée en dix couches de haut en bas. Chaque couche a des dépendances unidirectionnelles. La flèche noire à droite représente la relation de dépendance entre les couches. Chaque couche peut être supprimée de la couche supérieure et réutilisée. Les couches de configuration sont des API. , toutes les autres couches sont des SPI
    ● Les blocs verts dans la figure sont des interfaces d'extension et les blocs bleus sont des classes d'implémentation. La figure montre uniquement les classes d'implémentation utilisées pour associer chaque couche
    ● La ligne pointillée bleue dans. La figure est le processus d'initialisation, c'est-à-dire la chaîne d'assemblage au démarrage. La ligne continue rouge est le processus d'appel de la méthode, c'est-à-dire la chaîne d'appel d'exécution. La flèche violette est l'héritage. la classe parente. Le texte sur la ligne est la méthode appelante.

    La conception globale du code source de Dubbo est très similaire au lien appelant. Cependant, vous pouvez voir ici quelques implémentations spécifiques de l'interface et une division hiérarchique plus détaillée sur la gauche. Nous nous concentrerons également sur les implémentations de modules les plus importantes dans l'analyse ultérieure du code source.

    Les éléments suivants seront introduits par couches

    1. Couche de logique métier
    Quantity Couche métier de service : y compris le code métier tel que les interfaces et les classes d'implémentation
    2 Couche RPC : couche d'appel de procédure à distance
    weight Couche de configuration de configuration, qui fournit la configuration au monde extérieur. le noyau, il peut être directement Initialiser la classe de configuration, et également analyser le fichier de configuration
    ● Couche proxy du service proxy, qu'il s'agisse d'un producteur ou d'un consommateur, le framework générera une classe proxy L'ensemble du processus est transparent pour la couche supérieure. , et la couche métier est indifférente aux appels à distance
    ● Couche du centre d'enregistrement d'enregistrement , encapsule l'enregistrement et la découverte des adresses de service, centrées sur l'URL du service
    ● Couche de routage de cluster (couche de tolérance aux pannes du cluster), assure le routage et l'équilibrage de charge de plusieurs fournisseurs, et il relie le centre d'enregistrement avec Invoker comme centre
    ● Couche de surveillance, les informations relatives aux appels RPC, telles que le nombre d'appels, les situations de panne, l'heure de l'appel et d'autres informations statistiques seront collectées au niveau de cette couche
    ●. La couche d'appel à distance du protocole encapsule les appels RPC, qu'il s'agisse d'une exposition de service ou d'une référence de service. Il s'agit de l'entrée de fonction principale dans Protocol et est responsable de l'ensemble du cycle de vie d'Invoker. Tous les modèles de Dubbo sont plus proches de la couche Invoker
    3. : couche de transmission de données à distance
    Quantity Couche d'échange d'informations d'échange, qui encapsule le mode de requête et de réponse et convertit les requêtes de synchrone en asynchrone
    Quantity La couche de transmission du réseau de transport unifie les interfaces de transmission réseau, telles que Netty et Mina unifiées en une seule interface de transmission réseau
    ● Couche de sérialisation des données sérialisées, chargée de gérer la sérialisation et la désérialisation de la transmission des données dans l'ensemble du framework Changement

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    Will R.E.P.O. Vous avez un jeu croisé?
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

    Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

    Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

    Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

    Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

    Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

    Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

    Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

    Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

    Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

    Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

    Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

    Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

    Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

    Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

    Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

    See all articles