https://github.com/cryptosingh1337/photo-app-microservices
A Spring application which follows micro-service architecture. This project is created during a course for learning different micro-service concepts.
https://github.com/cryptosingh1337/photo-app-microservices
microservices-architecture spring-boot spring-cloud spring-cloud-config spring-cloud-gateway spring-microservices
Last synced: about 2 months ago
JSON representation
A Spring application which follows micro-service architecture. This project is created during a course for learning different micro-service concepts.
- Host: GitHub
- URL: https://github.com/cryptosingh1337/photo-app-microservices
- Owner: CryptoSingh1337
- Created: 2021-08-24T10:25:19.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-21T15:00:20.000Z (over 4 years ago)
- Last Synced: 2025-02-23T02:31:30.894Z (over 1 year ago)
- Topics: microservices-architecture, spring-boot, spring-cloud, spring-cloud-config, spring-cloud-gateway, spring-microservices
- Language: Java
- Homepage:
- Size: 127 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Photo App
A Spring application which follows micro-service architecture.
This project is created during a course for learning different micro-service concepts.
## Concepts learned
- Created a micro-service from scratch.
- Added jwt authentication with refresh token at service level and at API gateway level.
- Created discovery service which will register all the micro-services, so that our application will be aware of its network address and its port number.
- Created API gateway for load balancing, as a reverse proxy.
- Created Custom pre/post Gateway filters and added Authorization functionality to verify the jwt token at Gateway level.
- Created a centralized Config server so that all the global/specific application properties will be fetch from the GitHub [repository](https://github.com/CryptoSingh1337/photo-app-config-server).
- Created encryption and decryption for the config server using both shared encryption key and asymmetric key.
- Used RestTemplate and OpenFeign HTTP clients to communicate with other micro-services over http in synchronous manner.
- Added Resilience4J as circuit breaker so that we can handle the case when service is unavailable. It is used for making services fault tolerant.
- Added Zipkin and Sleuth for distributed tracing.
## Tech Stack
- Spring Boot
- Spring Cloud Netflix Eureka Server and Client
- Spring Cloud Gateway
- Spring Cloud Bus
- Spring Cloud OpenFeign
- Spring Cloud Sleuth
- Spring Cloud Zipkin Client
- Spring WebMvc
- Spring Data Jpa
- H2-DB and MySQL