Nacos para Registro e Descoberta de Serviços no Spring Cloud

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)
  1. Baixe a versão mais recente do Nacos (ex: 2.0.3) do GitHub Releases e descompacte.

  2. No diretório config, modifique o arquivo application.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

  3. No diretório bin, edite o arquivo startup.cmd (ou startup.sh para Linux/macOS) e altere o modo de cluster para standalone: ```

    set MODE="standalone"

  4. Crie um banco de dados chamado nacos no seu MySQL local.

  5. Execute os scripts SQL schema.sql e nacos-mysql.sql (encontrados no diretório config) no banco de dados nacos.

  6. Execute startup.cmd (ou startup.sh) no diretório bin para iniciar o Nacos.

  7. Acesse o console do Nacos em http://localhost:8848/nacos. O login padrão é nacos com a senha nacos.

Integração com Spring Cloud (Provider e Consumer)
  1. Adicione as seguintes dependências aos seus projetos provider e consumer: ```

  2. No provider, adicione a anotação @EnableDiscoveryClient à classe principal de inicialização do Spring Boot.

  3. 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

  4. Modifique a resposta do serviço provider para indicar que está usando Nacos (ex: adicionar " (Nacos)" ao título).

  5. Inicie o provider e verifiquee no console do Nacos se ele foi registrado com sucesso.

  6. Configure o endereço do servidor Nacos no arquivo de configuração do consumer da mesma forma que no provider.

  7. Inicie o consumer e 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.

Tags: Spring Cloud Nacos microsservicos descoberta de serviços Gerenciamento de Configuração

Publicado em 7-27 22:45