Este guia aborda o uso do Nacos como uma solução para registro e descoberta de serviços dentro do ecossistema Spring Cloud.
Introdução aos Microsserviços e Spring Cloud
O que são Microsserviços?
Microsserviços representam um estilo arquitetural focado em decompor um sistema monolítico em um conjunto de serviços menores e independentes. Cada serviço opera em seu próprio processo e se comunica com os outros, tipicamente via APIs RESTful. A principal característica é que cada microsserviço encapsula uma funcionalidade de negócio específica, gerenciando seus próprios dados, testes automatizados e capacidade de implantação independente.
Visão Geral do Spring Cloud
Spring Cloud é uma coleção organizada de projetos que visa simplificar o desenvolvimento de sistemas distribuídos. Em vez de reinventar soluções, ele agrega e reempacota frameworks estabelecidos, aplicando a conveniência do Spring Boot para abstrair configurações complexas e detalhes de implementação. Isso resulta em um kit de ferramentas acessível para construir e gerenciar serviços como registro de descoberta, gerenciamento de configuração, barramento de mensagens, balanceamento de carga e monitoramento de dados.
As versões do Spring Cloud recebem nomes de estações do metrô de Londres em ordem alfabética (Angel, Brixton, Camden, etc.). É importante notar a compatibilidade entre as versões do Spring Cloud e do Spring Boot.
Spring Cloud vs. Dubbo
Tanto Spring Cloud quanto Dubbo são ferramentas eficazes para arquitetura de microsserviços. Dubbo foca primariamente na governança de serviços e utiliza RPC para comunicação, o que pode oferecer uma ligeira vantagem de desempenho. Spring Cloud, por outro lado, abrange uma gama mais ampla de componentes da arquitetura de microsserviços e usa RESTful para comunicação.
Governança de Serviços com Nacos
Nacos: Gerenciamento de Configuração e Descoberta de Serviços
Nacos (Dynamic Naming and Configuration Service) é um projeto de código aberto da Alibaba, lançado em julho de 2018. Ele se especializa em descoberta de serviços e gerenciamento de configuração, auxiliando na localização, configuração e gerenciamento de microsserviços. Nacos suporta uma ampla variedade de "serviços" para descoberta e gerenciamento.
Em essência, Nacos combina as funcionalidades de um centro de registro e um servidor de configuração do Spring Cloud. Visite nacos.io para mais informações e GitHub Releases para downloads.
Configuração e Inicialização do Nacos (Modo Standalone)
-
Baixe a versão mais recente do Nacos (ex: 2.0.3) do GitHub Releases e descompacte.
-
No diretório
config, modifique o arquivoapplication.properties. Descomente as linhas relacionadas ao banco de dados MySQL e ajuste as credenciais (usuário, senha) e a URL. Certifique-se de que a URL do MySQL inclua o fuso horário se estiver usando versões mais recentes do MySQL. Exemplo: ```spring.datasource.platform=mysql db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 db.user.0=root db.password.0=your_mysql_password
-
No diretório
bin, edite o arquivostartup.cmd(oustartup.shpara Linux/macOS) e altere o modo declusterparastandalone: ```set MODE="standalone"
-
Crie um banco de dados chamado
nacosno seu MySQL local. -
Execute os scripts SQL
schema.sqlenacos-mysql.sql(encontrados no diretórioconfig) no banco de dadosnacos. -
Execute
startup.cmd(oustartup.sh) no diretóriobinpara iniciar o Nacos. -
Acesse o console do Nacos em
http://localhost:8848/nacos. O login padrão énacoscom a senhanacos.
Integração com Spring Cloud (Provider e Consumer)
-
Adicione as seguintes dependências aos seus projetos
providereconsumer: ``` -
No
provider, adicione a anotação@EnableDiscoveryClientà classe principal de inicialização do Spring Boot. -
No arquivo de configuração do
provider(ex:application-dev.yml), configure o endereço do servidor Nacos: ```server: port: 8000
spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 # Configuração para o Nacos Config Center (se aplicável) # config: # server-addr: 127.0.0.1:8848 # file-extension: yaml # group: DEFAULT_GROUP # shared-configs[0]: # data-id: common-config.yaml # group: COMMON_GROUP # refresh: true
-
Modifique a resposta do serviço
providerpara indicar que está usando Nacos (ex: adicionar " (Nacos)" ao título). -
Inicie o
providere verifiquee no console do Nacos se ele foi registrado com sucesso. -
Configure o endereço do servidor Nacos no arquivo de configuração do
consumerda mesma forma que noprovider. -
Inicie o
consumere teste a interface usando ferramentas como Postman para confirmar que a descoberta de serviço está funcoinando corretamente.
Configuração de Cluster do Nacos
Para configurar um cluster Nacos, é necessário iniciar o Nacos no modo cluster e configurar múltiplos nós. A configuração do lado do cliente (Java) envolverá listar os endereços de todos os nós do cluster. Para detalhes específicos sobre a configuração em diferentes sistemas operacionais, consulte tutoriais dedicados.
Nacos como Servidor de Configuração
Para informações sobre como usar o Nacos como um servidor de configuração centralizado, consulte a documentação específica sobre o Nacos Config Center.