Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucasdiasjorge/microservices
Microservices architecture using Java, Spring cloud, Eureka, Gateway, Authorization and resources.
https://github.com/lucasdiasjorge/microservices
eureka java microservices oauth2 spring springcloud
Last synced: 21 days ago
JSON representation
Microservices architecture using Java, Spring cloud, Eureka, Gateway, Authorization and resources.
- Host: GitHub
- URL: https://github.com/lucasdiasjorge/microservices
- Owner: LucasDiasJorge
- Created: 2024-09-28T17:23:01.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T19:05:59.000Z (3 months ago)
- Last Synced: 2024-10-19T11:31:13.952Z (3 months ago)
- Topics: eureka, java, microservices, oauth2, spring, springcloud
- Language: Java
- Homepage:
- Size: 99.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://stackoverflow.com/questions/67695069/spring-boot-datasource-initialization-error-with-data-sql-script-after-2-5-0-upg)_
- **Spring Cloud Gateway**: Para gerenciar e rotear requisições entre os microserviços, proporcionando uma única entrada para o sistema. _[help](https://www.youtube.com/watch?v=ju7NTqJxKRs)_
- **Resilience4j**: Para implementar padrões de tolerância a falhas e melhorar a resiliência do sistema. _[help](https://resilience4j.readme.io/docs/getting-started)_ _[help²](https://www.udemy.com/course/master-microservices-with-spring-docker-kubernetes/)_
- **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](https://github.com/Thiago-Marquet)_
- **Docker**: Para implementar facilidades no deploy no serviço de keycloak. _[help](https://github.com/LucasDiasJorge/Tutorial-Docker/blob/main/Example2%20(Keycloak)/docker-compose.yml)_## 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](https://www.udemy.com/course/microsservicos-java-spring-cloud)_, 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 :)