Notas de estudo de microsserviços--(gerenciamento de configuração Nacos)

Gerenciamento de configuração Nacos

  • Gerenciamento de configuração unificado
  • Configurar Atualização Rápida
  • compartilhamento de configuração
  • Crie um cluster Nacos

Gerenciamento de configuração Nacos - Nacos implementa gerenciamento de configuração

Gerenciamento de configuração unificado

Atualização a quente de mudança de configuração

Adicionar informações de configuração em Nacos: gerenciamento de configuração-lista de configuração-+

Preencha as informações de configuração no formulário pop-up:

Data ID:配置文件的id:[服务名称]-[profile].[后缀名]   # eg:orderservice-dev.yaml
Group: DEFAULT_GROUP #分组,默认即可
配置格式: 格式,目前支持yaml和properties
配置内容:# eg:
pattern:
  dataformat: yyyy-MM-dd HH:mm:ss

Gerenciamento de configuração Nacos - pull de configuração de microsserviço

Gerenciamento de configuração unificado

Os passos para obter a configuração são os seguintes:

Início do projeto –> endereço nacos, bootstrap.yml –> ler arquivo de configuração nacos –> ler arquivo de configuração local application.yml –> criar contêiner de mola –> load bean


1. Apresentar as dependências do cliente de gerenciamento de configuração do Nacos:

<!--nacos配置管理依赖-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. Adicione um arquivo bootstrap.yml ao diretório de recursos em userservice . Este arquivo é um arquivo bootstrap com uma prioridade mais alta que applicatin.yml

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地址
      config: 
        file-extension: yaml # 文件后缀名

Injete o atributo pattern.dateformat no UserController no serviço do usuário para teste:

@RestController
@RequestMapping("/user")
public class UserController {
    
    
	
	// 注入nacos中的配置属性
	@Value("${pattern.dateformat}")}
	private String dateformat;
	
	// 编写controller,通过日期格式化器来格式化现在时间并返回
	public String now() {
    
    
		return LocalDate.now().format(DateTimeFormatter.ofPattern(dataformat, Locale.CHINA));
	}
	...
}

resumo:

Etapas para entregar a configuração ao gerenciamento da Nacos

  • Adicionar arquivos de configuração no Nacos
  • Introduzir dependências de configuração do nacos em microsserviços
  • Adicione bootstrap.yml ao microsserviço e configure o endereço nacos, o ambiente atual, o nome do serviço e a extensão do arquivo. Estes determinam qual arquivo ler do nacos quando o programa iniciar

Gerenciamento de configuração do Nacos - hot update da configuração

Configurar atualização automática

Depois que o arquivo de configuração no Nacos é alterado, o microsserviço pode percebê-lo sem reiniciar. No entanto, você precisa implementar as duas configurações a seguir:

Método 1: Adicionar anotação @RefreshScope na classe onde está localizada a variável injetada por @Value

@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
    
    
	
	@Value("${pattern.dateformat}")
	private String dateformat;
}

Método 2: use a anotação @ConfigurationProperties

@Component
@Data
@COnfigurationProperties(prefix = "pattern")
public class PatternProperties {
    
    
	private String dateformat;
}
@slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
    
    
	
	@Autowired
	private PatternProperties properties;
	 
	@GetMapping("now")
	public String now() {
    
    
		return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()))
	}
}

resumo:

Depois que a configuração do Nacos é alterada, os microsserviços podem ser atualizados das seguintes maneiras:

  • Injetado por meio da anotação @Value, combinado com @RefreshScope para atualizar
  • Injetado por meio de @ConfigurationProperties, atualizado automaticamente

Precauções:

  • Nem todas as configurações são adequadas para serem colocadas no centro de configuração, o que é problemático de manter
  • Recomenda-se colocar alguns parâmetros-chave e parâmetros que precisam ser ajustados em tempo de execução no centro de configuração do nacos, que geralmente são configurações personalizadas

Gerenciamento de configuração Nacos - compartilhamento de configuração em vários ambientes

Compartilhamento de configuração em vários ambientes

Quando o microsserviço for iniciado, ele lerá vários arquivos de configuração do nacos:

  • [spring.application.name]-[spring.profiles.active].yaml, por exemplo: userservice-dev.yaml

  • [spring.application.name].yaml, por exemplo:userservice.yaml

Não importa como o perfil muda, o arquivo [spring.application.name].yaml será carregado, então a configuração de compartilhamento de vários ambientes pode ser gravada neste arquivo


Prioridade de várias configurações:

service-name-profile.yaml > service-name.yaml > configuração-local

resumo:

O arquivo de configuração que o microsserviço lerá do nacos:

  • [nome do serviço]-[spring.profile.active].yaml, configuração do ambiente
  • [nome do serviço].yaml, configuração padrão, compartilhamento de vários ambientes

prioridade:

[nome do serviço]-[ambiente].yaml>[nome do serviço].yaml>configuração local


## Gerenciamento de configuração Nacos - construção do cluster nacos #### Construção do cluster Nacos

No ambiente de produção Nacos, ele deve ser implantado como um estado de cluster

1. Diagrama de estrutura de cluster

O diagrama de cluster oficial do Nacos:

DNS
SLB
nacos nacos nacos

Ele contém 3 nós nacos e, em seguida, um proxy de balanceador de carga 3 Nacos. Aqui, o balanceador de carga pode usar nginx.

Endereços de três nós nacos:

ip porta
nacos1 192.168.150.1 8845
nacos2 192.168.150.1 8846
nacos3 192.168.150.1 8847

2. Crie um diagrama de cluster

As etapas básicas para criar um cluster:

  • Construa o banco de dados e inicialize a estrutura da tabela do banco de dados
  • Baixe o pacote de instalação do nacos
  • configurar nacos
  • Iniciar cluster nacos
  • proxy reverso nginx

2.1. Inicializar o banco de dados

Os dados padrão do Nacos são armazenados no banco de dados integrado Derby, que não é um banco de dados disponível para produção.

A melhor prática oficialmente recomendada é usar um cluster de banco de dados altamente disponível com mestre-escravo

Aqui está um banco de dados de ponto único como exemplo.

2.2. Baixar nacos

nacos tem um endereço de download no GitHub: https://github.com/alibaba/nacos/tags, você pode escolher qualquer versão para baixar.

2.3. Configurar Nacos

Descompacte o pacote em qualquer diretório não chinês, conforme mostrado na figura:

  • lixeira
  • conf
  • alvo
  • LICENÇA
  • PERCEBER

Descrição do diretório:

  • bin: script de inicialização
  • conf: arquivo de configuração

Entre no diretório conf de nacos, modifique o arquivo de configuração cluster.conf.example e renomeie-o para cluster.conf:

Em seguida, adicione o conteúdo:

127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847

Em seguida, modifique o arquivo application.properties e adicione a configuração do banco de dados

spring.datasource.platform=mysql
db.num=1

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123

2.4. Inicialização

Copie a pasta nacos três vezes, a saber: nacos1, nacos2, nacos3

Em seguida, modifique o applicaiton.properties nas três pastas, respectivamente

nacos1:

server.port=8845

nacos2:

server.port=8846

nacos3:

server.port=8847

Em seguida, inicie três nós nacos separadamente:
o padrão é a inicialização do cluster

startup.cmd

2.5.nginx proxy reverso

Descompacte a instalação do nginx em qualquer diretório não chinês:

Modifique o arquivo conf/nginx.conf, a configuração é a seguinte:

upstream nacos-cluster {
    
    
	server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}

server {
    
    
	listen 80;
	server_name localhost;
	 
	location /nacos {
    
    
		proxy_pass http://nacos-cluster;
	}
}

Em bootstrap.yml:

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:80 # Nacos地址
      config: 
        file-extension: yaml # 文件后缀名

Endereço de acesso do navegador:

http://localhost/nacos

resumo:

Etapas de construção do cluster

  • Crie um cluster MYSQL e inicialize a tabela do banco de dados
  • Baixe e descompacte nacos
  • Modificar a configuração do cluster (informações do nó), configuração do banco de dados
  • Inicie vários nós nacos separadamente
  • proxy reverso nginx

Acho que você gosta

Origin blog.csdn.net/weixin_42594143/article/details/130573993
Recomendado
Clasificación