0

Microsserviços em Spring Cloud com Java

André Gomes
André Gomes

API REST


As configurações disponibilizadas pelo Config Server, que trabalha como provedor de serviços REST e disponibiliza porta 8888 para consumo pelas aplicações.

O Service Discovery integrando as aplicações pela porta 9000 disponibilizando as estatísticas por uma interface gráfica.

O Product Catalog é disponibilizado pelo Service Discovery e aguarda ser chamada pelo cliente utilizando a porta 8081.

Retorno acessado pelo gateway na porta 8081.
{
  "id": 1,
  "name": "TV",
  "amount": 5
},
{
  "id": 3,
  "name": "Notebook",
  "amount": 3
},
{
  "id": 2,
  "name": "Notebook",
  "amount": 3
}

O Shopping Cart também é disponibilizado pelo Service Discovery e aguarda ser chamada pelo cliente utilizando a porta 8082.

Retorno acessado pelo gateway na porta 8082.
{
  "id": 1,
  "items": [
    {
      "productId": 1,
        "amount": 1
      }
    ]
  }

O Gateway distribui as solicitações para o micro um serviço específico responsável recebendo as requisições e disponibiliza as respostas pela porta 8080.

Arquitetura básica de microsserviços

  • Config Server: Consumindo as configurações do repositório no git e disponibilizando para os módulos.
  • Service Discory: Criado pelo Eureka Integrando os serviços e disponibilizando para as aplicações.
  • Product Catalog: Módulo desenvolvido utilizando Elasticsearch.
  • Shopping Cart: Módulo desenvolvido utilizando Redis.
  • Gateway: Módulo responsável pelas rotas

image-20210429031604514

Figura utilizada durante a aula


Concluindo

Após analisar a viabilidade de implantação, para não utilizar um "canhão tendo uma mosca como alvo", a utilização é recomendada para aplicações que demandem de:

  • Escalabilidade: com a facilidade de aumentar ou diminuir as instâncias de acordo com a demanda;
  • Resiliência: com baixo risco de indisponibilidade pela autonomia de cada serviço;
  • Flexibilidade: com a possibilidade de utilizar várias tecnologias com seus paradigmas específicos suas implementações;
  • Monitoramento: com logs centralizados e facilidade de acompanhar o ciclo de uma mensagem específica, agilizando a identificação e isolamento da instância;
  • Automação de processos: possibilita a automatização de processos DevOps.

Tendo em vista o processo de desenvolvimento:

  • Aumento da produtividade: pela possibilidade de segmentação do time;
  • Entrega contínua: pela autonomia de cada microsserviço, a implantação de novas versões, fix de bugs têm baixo risco de afetar a aplicação como um todo, agilizando as entregas sem para o produto e o time para avalizr os riscos;
  • Entrega de valor: a especialização de cada segmento do time possibilita o conhecimento aprofundade do negócia acarretando em nocas ideias e novas funcionalidades que agregam valor ao produto.
0
0

Comentários (0)

Tecnólogo: Gestão de TI | MBA: Ciência de Dados e Inteligência Artificial

Brasil