Partage de technologie

Analyse du processus de démarrage côté application Apache Seata - modules du centre d'enregistrement et du centre de configuration

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cet article vient de Documentation officielle d'Apache Seata, bienvenue sur le site officiel pour consulter des articles plus approfondis.
Cet article vient deDocumentation officielle d'Apache Seata, bienvenue sur le site officiel pour consulter des articles plus approfondis.

Analyse du processus de démarrage côté application Apache Seata - modules du centre d'enregistrement et du centre de configuration

Préface

Pendant le processus de démarrage du côté application de Seata (RM, TM), la première chose à faire est d'établir la communication avec le côté coordinateur (TC). C'est la condition préalable pour que Seata termine la coordination des transactions distribuées. côté application et communique avec le coordinateur pendant le processus d’établissement d’une connexion par TC.Comment trouver le cluster et l'adresse du coordinateur de transactions TC de?EncoreComment obtenir diverses informations de configuration à partir du module de configuration Qu'en est-il de? C’est l’objet de cet article.

Donnez une limite

En tant que composant sous-jacent de niveau middleware, Seata prend très soin d'introduire des frameworks tiers pour une implémentation spécifique. Les étudiants intéressés peuvent avoir une compréhension approfondie du mécanisme SPI de Seata et voir comment Seata utilise un grand nombre de points d'extension (Extensions) pour. S'appuyer sur l'implémentation spécifique des composants est inversé et s'appuie plutôt sur des interfaces abstraites. Dans le même temps, afin de mieux s'intégrer dans l'écosystème dérivé des architectures populaires telles que les microservices et le cloud natif, Seata utilise également le mécanisme SPI pour implémenter plusieurs grands courants. frameworks de microservices, centre d'enregistrement, centre de configuration et "leader" dans le monde des frameworks de développement Java - SpringBoot et d'autres se sont activement intégrés tout en garantissant l'architecture du micronoyau, le couplage lâche et l'évolutivité, mais ils peuvent également "bien s'intégrer" avec divers composants. », facilitant l'introduction de Seata dans des environnements utilisant diverses piles technologiques.

Cet article se veut proche de tout le mondeQuand j'ai présenté Seata pour la première fois pour une utilisation d'essaiscénario, dans l'introduction suivante, choisissezCôté applicationLes qualifications pour sont les suivantes : utiliserFichier comme centre de configuration et centre d'enregistrement, et basé surSpringBootdémarrer.

Avec cette qualification à l’esprit, plongeons dans le code source de Seata pour le découvrir.

Processus d'initialisation RM/TM de coopération alternée multi-modules

exister Analyse du processus de démarrage du client Seata (1) , nous avons analysé l'initialisation de TM et RM côté application Seata, et comment le côté application crée un canal Netty et envoie une demande d'enregistrement au serveur TC. De plus, lors du processus d'initialisation de RM, les autres modules de Seata (centre d'enregistrement, centre de configuration, équilibrage de charge) sont également apparus les uns après les autres, coopérant les uns avec les autres pour compléter le processus de connexion au serveur TC.

Lors de l'exécution de la méthode de reconnexion du client au serveur TC : NettyClientChannelManager.Channreconnect(), vous devez d'abordRegroupement de transactionsObtenez la liste des adresses de serveur TC disponibles :

    /**
     * NettyClientChannelManager.reconnect()
     * Reconnect to remote server of current transaction service group.
     *
     * @param transactionServiceGroup transaction service group
     */
    void reconnect(String transactionServiceGroup) {
        List