Compartilhamento de tecnologia

Análise do processo de inicialização do lado do aplicativo Apache Seata - centro de registro e módulos do centro de configuração

2024-07-08

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

Este artigo vem de Documentação oficial do Apache Seata, bem-vindo ao visitar o site oficial para ver artigos mais detalhados.
Este artigo vem deDocumentação oficial do Apache Seata, bem-vindo ao visitar o site oficial para ver artigos mais detalhados.

Análise do processo de inicialização do lado do aplicativo Apache Seata - centro de registro e módulos do centro de configuração

Prefácio

Durante o processo de inicialização do lado da aplicação do Seata (RM, TM), a primeira coisa a fazer é estabelecer comunicação com o lado do coordenador (TC). Este é o pré-requisito para que o Seata conclua a coordenação da transação distribuída. lado da aplicação e se comunica com o coordenador Durante o processo de estabelecimento de uma conexão do TC, ele é.Como encontrar o cluster e o endereço do coordenador de transações TC de?De novoComo obter diversas informações de configuração do módulo de configuração A respeito? Este é o foco deste artigo.

Dê um limite

Como um componente subjacente de nível de middleware, o Seata é muito cuidadoso ao introduzir estruturas de terceiros para implementação específica. Os alunos interessados ​​podem ter uma compreensão profunda do mecanismo SPI do Seata e ver como o Seata usa um grande número de pontos de extensão (Extensões) para. Depender da implementação específica de componentes é invertido e, em vez disso, depende de interfaces abstratas. Ao mesmo tempo, a fim de se integrar melhor ao ecossistema derivado de arquiteturas populares, como microsserviços e nativos da nuvem, Seata também usa o mecanismo SPI para implementar vários mainstream. estruturas de microsserviços, centro de registro, centro de configuração e o "líder" no mundo da estrutura de desenvolvimento Java - SpringBoot e outros se integraram ativamente Ao mesmo tempo em que garantem a arquitetura de microkernel, acoplamento flexível e escalabilidade, eles também podem "integrar-se bem" com vários componentes. ”, facilitando a introdução do Seata em ambientes que utilizam diversas pilhas de tecnologia.

Este artigo pretende estar perto de todosQuando apresentei o Seata pela primeira vez para uso experimentalcenário, na introdução a seguir, escolhaLado do aplicativoAs qualificações para são as seguintes: usarArquivo como centro de configuração e centro de registro, e com base emSpringBootcomece.

Com esta qualificação em mente, vamos mergulhar no código-fonte do Seata para descobrir.

Processo de inicialização RM/TM de cooperação alternada multimódulo

existir Análise do processo de inicialização do cliente Seata (1) , analisamos a inicialização de TM e RM no lado da aplicação Seata e como o lado da aplicação cria um canal Netty e envia uma solicitação de registro ao servidor TC. Além disso, durante o processo de inicialização do RM, os demais módulos do Seata (centro de registro, centro de configuração, balanceamento de carga) também apareceram um após o outro, cooperando entre si para completar o processo de conexão ao Servidor TC.

Ao executar o método do Cliente para reconectar ao Servidor TC: NettyClientChannelManager.Channreconnect(), você primeiro precisaAgrupamento de transaçõesObtenha a lista de endereços de servidores TC disponíveis:

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