Compartilhamento de tecnologia

Notas de estudo do Grain Mall-23-Componentes distribuídos-SpringCloud Alibaba-Nacos Configuration Center-Exemplo simples

2024-07-12

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

Já aprendi a usar o Nacos como centro de registro. Nesta seção, aprenderemos outra função principal do Nacos:配置中心

1. Introdução ao Centro de Configuração Nacos

Nacos é uma plataforma fácil de usar para descoberta dinâmica de serviços e gerenciamento de configuração. Como centro de configuração, o Nacos oferece as seguintes funções e vantagens principais:

  1. Gerenciamento de configuração dinâmica: Nacos permite que os usuários modifiquem e enviem informações de configuração dinamicamente sem reiniciar o serviço, obtendo atualizações de configuração em tempo real.

  2. Configurar armazenamento centralizado: O Nacos fornece um armazenamento de configuração centralizado, facilitando o gerenciamento e a manutenção das informações de configuração e evitando o problema de dispersão da configuração em diferentes ambientes e sistemas.

  3. Configurar o controle de versão: Nacos oferece suporte ao controle de versão de configuração, que pode rastrear o histórico de alterações de configuração e facilitar as operações de reversão.

  4. Configurar o compartilhamento: o Nacos permite o compartilhamento de configuração entre serviços, melhorando a capacidade de reutilização da configuração e reduzindo a redundância.

  5. Configurar o isolamento: Por meio do conceito de namespace, o Nacos oferece suporte ao isolamento de configuração de diferentes ambientes (como desenvolvimento, teste e produção) para garantir que as configurações entre ambientes não interfiram entre si.

  6. Configurar escuta e envio: Nacos fornece uma função de monitoramento de configuração quando a configuração muda, ele pode enviar atualizações ativamente para o cliente para obter atualização a quente da configuração.

  7. segurança: Nacos suporta controle de acesso à configuração e gerenciamento de permissões para garantir que apenas usuários autorizados possam acessar ou modificar configurações.

  8. Suporte a vários ambientes: Nacos oferece suporte a uma variedade de ambientes de implantação e pode atender ao gerenciamento de configuração de diferentes escalas e necessidades.

  9. Integre com Spring Cloud: O Nacos está totalmente integrado ao Spring Cloud e fornece spring-cloud-starter-alibaba-nacos-config e outros componentes, simplificando o processo de uso do centro de configuração do Nacos em aplicativos Spring Cloud.

  10. Fácil de usar: Nacos fornece uma interface de usuário amigável, tornando a visualização, modificação e gerenciamento de configurações intuitivas e simples.

Como centro de configuração, o Nacos é adequado para arquitetura de microsserviços, aplicativos nativos da nuvem e sistemas distribuídos que exigem gerenciamento dinâmico de configuração. Ao gerenciar centralmente as configurações, o Nacos ajuda as empresas a melhorar a eficiência e a segurança do gerenciamento de configurações, ao mesmo tempo que simplifica o trabalho de desenvolvimento, operação e manutenção.

2. Instruções de uso do Nacos Configuration Center

As instruções de uso estão registradas detalhadamente na documentação oficial, clique para visualizar a documentaçãohttps://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html

1. Declare a dependência do Maven no centro de configuração

Para usar o centro de configuração, primeiro você deve adicionar dependências.

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

No projeto Guli Mall, como todos os serviços devem utilizar o centro de configuração do Nacos, esta dependência é adicionada ao módulo comum.

2. Configure o endereço e o nome do aplicativo do servidor Nacos em bootstrap.properties

No diretório de recursos do projeto ou módulo, declare o endereço e o nome do serviço do servidor Nacos em bootstrap.properties.

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Crie um arquivo de configuração na interface da lista de configuração do Nacos

Insira a descrição da imagem aqui

Após clicar em Criar Configuração, a seguinte página aparecerá.

Insira a descrição da imagem aqui

  • ① O ID dos dados é equivalente ao nome do arquivo e deve incluir o nome do serviço, como gulimall-coupon.properties
  • ② O tipo de arquivo de configuração suporta vários tipos. Para microsserviços, geralmente é yaml ou propriedades.
  • ③ A caixa preta contém as informações de configuração a serem preenchidas

existir Nacos Spring Cloud meio,Data Id O formato completo é o seguinte:

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix O padrão éspring.application.name O valor também pode ser passado através do item de configuraçãospring.cloud.nacos.config.prefixpara configurar.
  • spring.profiles.active Ou seja, correspondendo ao ambiente atualprofile , consulte a documentação do Spring Boot para obter detalhes. Nota: quandospring.profiles.active Quando estiver vazio, o conector correspondente - não existirá e o formato de emenda do dataId se tornará${prefix}.${file-extension}
  • file-exetension Para configurar o formato dos dados do conteúdo, você pode passar o item de configuraçãospring.cloud.nacos.config.file-extension para configurar.Atualmente só suportaproperties eyaml tipo.

Três, teste

1. Coloque as informações de configuração no projeto

Primeiro colocamos as informações no arquivo de configuração do projeto e configuramos as seguintes informações no arquivo de configuração application.properties do módulo de cupom:

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

Insira a descrição da imagem aqui

2. Escreva o código de teste

Adicione um método no Controlador para usar as informações de configuração no arquivo de configuração.

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Observe que no código acima, injetamos a configuração do arquivo de configuração na variável de classe por meio da anotação @Value e depois a referenciamos no método.

3. Teste

Após iniciar o serviço, digite o seguinte endereço em seu navegador.

http://localhost:7000/coupon/coupon/test
  • 1

A saída é a seguinte, indicando que as informações do arquivo de configuração foram lidas.
Insira a descrição da imagem aqui

4. Configure as informações de configuração para o centro de configuração

Tome o serviço de cupom como exemplo para configurar.
Insira a descrição da imagem aqui

Clique no botão editar no lado direito da lista de arquivos de configuração para entrar na interface de edição.

Insira a descrição da imagem aqui

Observe que para esclarecer a diferença e a conexão entre o arquivo de configuração do centro de configuração e o arquivo de configuração local, não excluímos a configuração local na etapa anterior.

Atualmente, existe apenas uma configuração definida no centro de configuração. Esta configuração também está disponível na configuração local, mas o valor é diferente.coupon.user.name=lcy, o centro de configuração écoupon.user.name=lcy2

Atualize o navegador após reiniciar o serviço. Os resultados são os seguintes.

Insira a descrição da imagem aqui
Obviamente, o valor de name é obtido do centro de configuração e não do arquivo de configuração local.O valor no centro de configuração substituirá o valor no arquivo de configuração local.

registro de erros

Registro de erro do centro de configuração do Guli Mall