


Quelle est la méthode de conception globale de l'architecture Java Dubbo ?
1. Description de la relation d'appel 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
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é iciQuantity 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
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.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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.

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

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.

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

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
