"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Arquitetura de microsserviços com Spring Cloud

Arquitetura de microsserviços com Spring Cloud

Publicado em 2024-07-29
Navegar:855

Microservices Architecture with Spring Cloud

A arquitetura de microsserviços é uma abordagem de design em que um aplicativo é composto de serviços fracamente acoplados. Cada serviço é responsável por uma funcionalidade específica e pode ser desenvolvido, implantado e dimensionado de forma independente. Spring Cloud é um conjunto de ferramentas e frameworks que ajudam na construção de microsserviços robustos e escaláveis.

O que são microsserviços?
Os microsserviços dividem aplicações complexas em serviços menores e gerenciáveis. Cada microsserviço se concentra em um único recurso de negócios e se comunica com outros serviços por meio de APIs bem definidas, normalmente usando REST ou filas de mensagens.

Benefícios dos microsserviços

  • Escalabilidade: serviços individuais podem ser dimensionados de forma independente com base na demanda.
  • Flexibilidade: Diferentes serviços podem ser desenvolvidos usando diferentes tecnologias e linguagens.
  • Isolamento de falha: A falha em um serviço não afeta todo o sistema.
  • Implantação Contínua: permite a implantação frequente e independente de serviços.

Principais componentes do Spring Cloud:

1. Configuração do Spring Cloud:

  • Gerenciamento centralizado de configuração externa.
  • Suporta várias fontes de configuração como Git, SVN e arquivos locais.
  • Exemplo: configuração de credenciais de banco de dados, chaves de API e outras propriedades em vários serviços.

2. Spring CloudNetflix:

  • Integra componentes Netflix OSS, como Eureka, Hystrix, Zuul e Ribbon.
  • Eureka: servidor e cliente de descoberta de serviço.
  • Hystrix: Disjuntor para tolerância a falhas.
  • Zuul: gateway de API para roteamento dinâmico.
  • Ribbon: balanceamento de carga do lado do cliente.

3. Spring Cloud Gateway:

  • Um novo projeto substituindo Zuul.
  • Fornece uma maneira simples e eficaz de encaminhar solicitações.
  • Recursos como reescrita de caminho, balanceamento de carga e filtros de rota.

4. Detetive da nuvem de primavera:

  • Rastreamento distribuído para rastrear o fluxo de solicitações entre microsserviços.
  • Integra-se com Zipkin para monitoramento e análise.

5. Fluxo de nuvem de primavera:

  • Estrutura para construção de microsserviços orientados a eventos.
  • Usa sistemas de mensagens como RabbitMQ e Apache Kafka.

Construindo um aplicativo simples de microsserviços com Spring Cloud:

Configurando projetos Spring Boot:

  • Crie projetos Spring Boot separados para cada microsserviço.
  • Defina dependências para componentes Spring Cloud em pom.xml ou build.gradle.

Configurando o servidor de configuração Spring Cloud:

  • Configure um Config Server para gerenciar configurações externas.
  • Aponte os microsserviços para o Config Server para configuração centralizada.

Descoberta de serviço com Eureka:

  • Configure um servidor Eureka para registro e descoberta de serviços.
  • Configure cada microsserviço para registrar-se no servidor Eureka.

API Gateway com Spring Cloud Gateway:

  • Configure um Spring Cloud Gateway para rotear solicitações para diferentes microsserviços.
  • Defina regras de roteamento e filtros para lidar com solicitações.

Adicionando resiliência com Hystrix:

  • Integre o Hystrix para mecanismos de interrupção e fallback de circuito.
  • Anote métodos com @HystrixCommand para ativar a interrupção do circuito.

Rastreamento distribuído com Spring Cloud Sleuth:

  • Adicione dependências do Sleuth para rastrear e registrar o fluxo de solicitações.
  • Use o Zipkin para visualizar e analisar os dados de rastreamento.

Exemplo: Implementando uma arquitetura simples de microsserviços

Vamos considerar um aplicativo básico de comércio eletrônico com os seguintes microsserviços:

  1. Serviço do produto: gerencia informações do produto.
  2. Serviço de pedidos: trata de pedidos e transações.
  3. Serviço de estoque: gerencia os níveis de estoque.

Etapa 1: Criar projetos Spring Boot
Para cada serviço, crie um projeto Spring Boot com as dependências necessárias:


org.springframework.cloudspring-cloud-starter-netflix-eureka-client

Etapa 2: configurar o servidor de configuração
Crie um Config Server e configure-o para ler de um repositório Git:

# application.yml for Config Server
spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-repo/config-repo

Etapa 3: registrar serviços com Eureka
Em cada microsserviço, defina as configurações do cliente Eureka:

# application.yml for Product Service
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

Etapa 4: Configurar Spring Cloud Gateway
Configure rotas no aplicativo Gateway:

# application.yml for Gateway
spring:
  cloud:
    gateway:
      routes:
        - id: product-service
          uri: lb://PRODUCT-SERVICE
          predicates:
            - Path=/products/**

Etapa 5: Adicionar disjuntor com Hystrix
Anote métodos nas classes de serviço:

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String getProductDetails(String productId) {
    // logic to get product details
}

public String fallbackMethod(String productId) {
    return "Product details not available";
}

Etapa 6: ativar o rastreamento distribuído
Adicione dependências e configuração do Sleuth e Zipkin:

# application.yml for Tracing
spring:
  zipkin:
    base-url: http://localhost:9411/

Conclusão:

Implementar uma arquitetura de microsserviços com Spring Cloud melhora a escalabilidade, resiliência e capacidade de manutenção de seus aplicativos. O conjunto robusto de ferramentas do Spring Cloud simplifica as complexidades envolvidas na construção e gerenciamento de microsserviços, tornando-o uma excelente escolha para desenvolvedores. Seguindo as práticas recomendadas e aproveitando essas ferramentas poderosas, você pode criar soluções de microsserviços eficientes, escalonáveis ​​e tolerantes a falhas.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/vidhi_jayswal/microservices-architecture-with-spring-cloud-lff?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3