Skip to content

Microservices architecture using Java, Spring cloud, Eureka, Gateway, Authorization and resources.

Notifications You must be signed in to change notification settings

LucasDiasJorge/Microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto de Microsserviços com Java

Este projeto é uma aplicação que tem como o objetivo de demonstrar como configurar e utilizar tecnologias modernas para criar um sistema escalável e distribuído.

Estrutura do Projeto

O projeto é dividido em dois microserviços principais:

  • Worker: Responsável por fornecer informações sobre trabalhadores, como nome e renda diária.
  • Payroll: Responsável por calcular pagamentos com base nos dados fornecidos pelo serviço Worker.

Tecnologias Utilizadas

  • Spring Boot: Framework para criação de aplicações Java.
  • Eureka: Serviço de descoberta que permite que os microserviços se encontrem e se comuniquem.
  • OpenFeign: Biblioteca para simplificar a comunicação entre microserviços através de chamadas REST.
  • H2 Database: Banco de dados em memória para testes. help
  • Spring Cloud Gateway: Para gerenciar e rotear requisições entre os microserviços, proporcionando uma única entrada para o sistema. help
  • Resilience4j: Para implementar padrões de tolerância a falhas e melhorar a resiliência do sistema. help help²
  • Spring Cloud Config: Para gerenciar a configuração dos microserviços de forma centralizada, permitindo alterações dinâmicas sem necessidade de reinício. (Manutenção)
  • OAuth 2: Para implementar autenticação, garantindo que os serviços estejam protegidos e apenas acessíveis a usuários autorizados. Thiago Marquet
  • Docker: Para implementar facilidades no deploy no serviço de keycloak. help

Futuras Evoluções

O projeto será expandido com a adição das seguintes tecnologias e funcionalidades:

  • OAuth 2: Para implementar autorização por Role do usuário.
  • Docker: Para implementar facilidades no deploy e uso de contêineres.
  • Kafka: Para implementar mensageria e programação orientada a eventos entre os serviços.

Configuração do Ambiente

Pré-requisitos

  • Java 17 ou superior
  • Maven
  • Docker (opcional)

Notas finais

Este projeto serve como guia tanto para estudantes de Back End que desejam conhecer o conceito de arquitetura de microsserviços, e para desenvolvedores já alocados no mercado de trabalho, com desejo de replicar os conceitos aqui aplicados ou como forma de referência para a modelagem de um sistema próprio. Sinta-se livre para entrar em contato comigo via Email, Issues ou forks para a atualização, esclarecimentos de dúvidas ou sobre melhorias do projeto.

Foi utilizado como base o curso do Nelio Alves, link, e toneladas de materiais oficiais das tecnologias. E para finalizar, acredito que esse codebase sejá uma boa atualização do curso mencionado, visto as atualizações das tecnologias e liguagem usada. Vem me dando um bom trabalho manter esse código atualizado e em boa legibilidade e documentado, dito isso, toda ajuda é bem vinda.

Meus agradecimentos, atenciosamente, Lucas Dias Jorge :)

About

Microservices architecture using Java, Spring cloud, Eureka, Gateway, Authorization and resources.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages