"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 > Construindo microsserviços escaláveis ​​com Java Spring Boot: Melhores práticas e técnicas parte -1

Construindo microsserviços escaláveis ​​com Java Spring Boot: Melhores práticas e técnicas parte -1

Publicado em 2024-08-18
Navegar:984

Arquitetura Monolítica

  • Se desenvolvermos todas as funcionalidades em um único projeto, ele será chamado de aplicativo baseado na arquitetura Monolith.

  • Empacotaremos nosso aplicativo como um jar/war para implantar no servidor.

  • Como o aplicativo monolítico contém todas as funcionalidades, ele se tornará um frasco/guerra gordo.

Vantagens
1) Fácil de desenvolver e gerenciar.
2) Tudo está disponível em um só lugar.
3) Configuração necessária apenas uma vez.

Desvantagens
1) Difícil de manter
2) Ponto único de falha
3) Se realizarmos alguma alteração, o projeto completo será reimplantado e testado.
4) O desenvolvedor pode não ter conhecimento de módulos inteiros, então é mais difícil começar a corrigir o problema.
5) se algum módulo tiver muita carga, precisamos criar as múltiplas instâncias do aplicativo completo, de modo que ocupe muito espaço porque cada módulo está fortemente acoplado entre si.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Para superar os problemas do Monolítico, a arquitetura de microsserviços entrou no mercado

Arquitetura de microsserviços

  • Microsserviços não são uma linguagem de programação, estrutura ou API. Microsserviços são um padrão de design arquitetônico.

  • Microsserviços que sugerem o desenvolvimento de funcionalidades de aplicativos com acoplamento fraco.

  • Na arquitetura de Microserviços não desenvolvemos todas as funcionalidades em um único projeto. Dividiremos as funcionalidades do projeto em várias APIs REST.

  • Microsserviços não estão relacionados apenas a java. Qualquer projeto específico de linguagem de programação pode usar Arquitetura de Microsserviços.

Microsserviços é uma abordagem que desenvolvemos pequenos serviços, cada serviço é executado em seu próprio contêiner/processo/servidor, os serviços devem ser leves e implantáveis ​​de forma independente. Isso permite desenvolvimento, implantação e escalabilidade mais rápidos.

Como você pode ver, o módulo de funcionário, o módulo de cliente, o módulo de endereço e o módulo de curso do aplicativo monolítico agora foram convertidos em pequenos serviços, então aqui estão eles como atendimento ao funcionário, atendimento ao cliente, serviço de endereço e serviço de curso. e no aplicativo monolítico há uso de banco de dados único, mas no aplicativo de microsserviço cada serviço possui seu próprio banco de dados. e agora eles dependem um do outro. e cada serviço se comunica entre si e realiza as demais chamadas.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Vantagens

    Independência tecnológica (podemos desenvolver APIs de backend com múltiplas tecnologias como python, Go etc.)
  • Independência de banco de dados.

  • Cada serviço é independente um do outro (frouxamente acoplamento) para que possamos implantar cada serviço de forma independente.

  • se realizar qualquer alteração em qualquer serviço, não há necessidade de implantar todo o serviço, apenas um serviço é implantado único também.

  • Desenvolvedor trabalhando em um serviço não requer o conhecimento de todo o aplicativo.

  • A falha de um único microsserviço não afeta todo o aplicativo, aumentando a resiliência geral.

  • Bases de código menores e separação de preocupações tornam a manutenção e a depuração mais gerenciáveis.

  • Devido à sua natureza menor e independente, os microsserviços individuais podem ser dimensionados de forma independente com base na demanda, sem a necessidade de dimensionar o aplicativo inteiro.

  • Cada serviço pode ser testado de forma diferente.

Desvantagens

    se quisermos realizar as alterações em uma configuração de serviço, precisamos realizar as alterações em cada configuração de serviço, por exemplo, há uma propriedade comum que existe em cada arquivo application.properties em todos os meus projetos.
empresa.name=tier3Hub
company.name=tier3Hub
então se quisermos mudar o nome da empresa então em todos os serviços precisamos mudar o nome.

  • Testar um aplicativo baseado em microsserviços pode ser mais complexo devido às interdependências e interações entre os serviços.

  • cada serviço lida com uma quantidade específica de solicitação, depois disso, se enviarmos mais solicitações do que o serviço estiver inativo, precisamos de várias instâncias desse serviço e para rotear a solicitação em uma instância diferente do serviço, precisamos de um balanceador de carga que equilibra a solicitação vinda dos clientes e rotas em diferentes instâncias. mas escrever o balanceador de carga em Java é difícil.

Por que Java para microsserviços

Java fornece a estrutura chamada Spring-Boot para desenvolver as APIs Rest e Spring-Boot fornece muitos recursos como configuração automática, servidor incorporado, se estivermos desenvolvendo o serviço, então há necessidade de implantar esse serviço no servidor e o spring-Boot fornece o servidor Tomcat, para que cada serviço seja executado em portas diferentes do Tomcat. por exemplo, o serviço de funcionário está rodando na porta 8080, o serviço do curso está rodando na porta 8081 e cada serviço tem seu próprio servidor.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

com a ajuda do spring-Boot fornece recursos para desenvolvimento rápido, menos configuração, aplicativo pronto para produção e projeto stater

e há um projeto no Spring Framework chamado Spring Cloud que fornece microsserviços de suporte prontos, Spring Cloud fornece algumas ferramentas e técnicas comuns para desenvolver rapidamente padrões comuns de microsserviços.

Spring Cloud se concentra em fornecer uma boa experiência pronta para uso para casos de uso típicos e mecanismo de extensibilidade para cobrir outros

    Configuração distribuída/versionada
  • Registro e descoberta de serviços
  • Roteamento
  • Chamadas serviço a serviço
  • Balanceamento de carga
  • Disjuntores
  • Mensagens distribuídas
  • Microsserviços (tarefas) de curta duração
  • Testes de contrato orientados ao consumidor e ao produtor.
Arquitetura de microsserviços

Não temos nenhuma arquitetura fixa para microsserviços, os desenvolvedores estão customizando a arquitetura de microsserviços de acordo com os requisitos do projeto. A maioria dos projetos usará os componentes abaixo na arquitetura de microsserviços.

1) Registro de serviço (servidor Eureka)

2) Serviços (APIs REST)

3) Comunicação entre serviços (FeginClient)

4) Gateway de API

5) Servidor de administração

6) Zipkin

Conclusão

Os microsserviços em Java transformaram a maneira como abordamos o desenvolvimento de software, trazendo um novo nível de flexibilidade, escalabilidade e resiliência para a mesa. O rico ecossistema Java, combinado com estruturas como Spring Boot e Micronaut, torna-o uma excelente escolha para a construção de microsserviços que possam atender às demandas de aplicativos modernos.

À medida que exploramos essa arquitetura, fica claro por que os microsserviços ganharam popularidade em relação aos aplicativos monolíticos tradicionais. Eles oferecem modularidade e independência, permitindo que as equipes desenvolvam, implantem e dimensionem serviços individualmente. Isto é especialmente valioso em um mundo onde os recursos nativos da nuvem estão se tornando cada vez mais o padrão. No entanto, a jornada também revela desafios como garantir a consistência dos dados, gerenciar a comunicação entre serviços e manter uma segurança robusta entre os serviços.

Manter-se atualizado com os avanços mais recentes em ferramentas e práticas é crucial para desenvolvedores Java que trabalham com microsserviços. A paisagem está em constante evolução e aqueles que se adaptarem estarão melhor posicionados para aproveitar todo o potencial desta arquitetura. O futuro dos microsserviços em Java parece promissor, com melhorias contínuas em estruturas e ferramentas, apoiadas por uma comunidade crescente de desenvolvedores ansiosos por compartilhar seu conhecimento e experiência.

Adotar microsserviços em Java significa abrir portas para a criação de aplicativos mais resilientes, escaláveis ​​e de fácil manutenção. Seguindo as melhores práticas e permanecendo comprometidos com o aprendizado contínuo, os desenvolvedores podem desbloquear novas possibilidades no desenvolvimento de software, levando a soluções mais inovadoras e eficientes.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/ayushstwt/building-scalable-microservices-with-java-spring-boot-best-practices-and-techniques-part-1-1da3?1 Se houver alguma violação , entre em contato com study_golang @163.comdelete
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