Compartir tecnología

Análisis del proceso de inicio de la aplicación Apache Seata: módulos del centro de registro y del centro de configuración

2024-07-08

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

Este artículo proviene de Documentación oficial de Apache SeataBienvenido a visitar el sitio web oficial para ver artículos más detallados.
Este artículo proviene deDocumentación oficial de Apache SeataBienvenido a visitar el sitio web oficial para ver artículos más detallados.

Análisis del proceso de inicio de la aplicación Apache Seata: módulos del centro de registro y del centro de configuración

Prefacio

Durante el proceso de inicio del lado de la aplicación de Seata (RM, TM), lo primero que debe hacer es establecer comunicación con el lado del coordinador (TC). Este es el requisito previo para que Seata complete la coordinación de transacciones distribuidas. Luego, Seata completa la inicialización. lado de la aplicación y se comunica con el coordinador Durante el proceso de TC que establece una conexión, esCómo encontrar el grupo y la dirección del coordinador de transacciones de TC ¿de?De nuevoCómo obtener diversa información de configuración del módulo de configuración ¿Qué pasa? Este es el enfoque de este artículo.

dar un limite

Como componente subyacente a nivel de middleware, Seata introduce con mucho cuidado marcos de terceros para implementaciones específicas. Los estudiantes interesados ​​pueden tener una comprensión profunda del mecanismo SPI de Seata y ver cómo Seata utiliza una gran cantidad de puntos de extensión (Extensiones). Depender de la implementación específica de componentes se invierte y se basa en interfaces abstractas. Al mismo tiempo, para integrarse mejor en el ecosistema derivado de arquitecturas populares como microservicios y nativas de la nube, Seata también utiliza el mecanismo SPI para implementar múltiples corrientes principales. Marcos de microservicios, centros de registro, centros de configuración y "líderes" en el mundo de los marcos de desarrollo de Java: SpringBoot y otros se han integrado activamente al tiempo que garantizan la arquitectura de microkernel, el acoplamiento flexible y la escalabilidad, y también pueden "integrarse bien" con varios componentes. ”, lo que facilita la introducción de Seata en entornos que utilizan diversas pilas de tecnología.

Este artículo pretende estar cerca de todos.Cuando presenté Seata por primera vez para uso de pruebaescenario, en la siguiente introducción, elijaLado de la aplicaciónLas calificaciones para son las siguientes: usoArchivo como centro de configuración y centro de registro, y basado enArranque de resortepuesta en marcha.

Con esta calificación en mente, profundicemos en el código fuente de Seata para descubrirlo.

Proceso de inicialización RM/TM de cooperación alterna de múltiples módulos

existir Análisis del proceso de inicio del cliente Seata (1) , analizamos la inicialización de TM y RM en el lado de la aplicación Seata, y cómo el lado de la aplicación crea un canal Netty y envía una solicitud de registro al servidor TC. Además, durante el proceso de inicialización de RM, los otros módulos de Seata (centro de registro, centro de configuración, equilibrio de carga) también aparecieron uno tras otro, cooperando entre sí para completar el proceso de conexión al servidor TC.

Al ejecutar el método del Cliente para volver a conectarse al Servidor TC: NettyClientChannelManager.Channreconnect(), primero debeAgrupación de transaccionesObtenga la lista de direcciones de servidores TC disponibles:

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