Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/praveen1664/springbootmicroserviceexample
This repository contains a Microservices example with Okta & Spring Security, Feign Client, Cloud api gatway, Configuration server, Eureka server & a consolidated swagger docs services.
https://github.com/praveen1664/springbootmicroserviceexample
api-gateway configuration docker eureka-server feign feign-client java microservices resilent resilience4j spring-boot swagger
Last synced: 21 days ago
JSON representation
This repository contains a Microservices example with Okta & Spring Security, Feign Client, Cloud api gatway, Configuration server, Eureka server & a consolidated swagger docs services.
- Host: GitHub
- URL: https://github.com/praveen1664/springbootmicroserviceexample
- Owner: praveen1664
- Created: 2023-01-12T12:53:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-12T14:45:09.000Z (about 2 years ago)
- Last Synced: 2024-11-21T04:09:54.674Z (3 months ago)
- Topics: api-gateway, configuration, docker, eureka-server, feign, feign-client, java, microservices, resilent, resilience4j, spring-boot, swagger
- Language: Java
- Homepage:
- Size: 93.8 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SpringBootMicroserviceExample
## What is this?
The repository contains a complete Microservices example with 3 main services USER-SERVICE, HOTEL-SERVICE and RATING-SERVICE. In it we have used [OKTA AUTH](https://developer.okta.com/docs/concepts/how-okta-works/), [Spring Security](https://spring.io/projects/spring-security), [Resilence4j](https://resilience4j.readme.io/docs), [Feign Client](https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html), [Spring Cloud api gatway](https://spring.io/projects/spring-cloud-gateway), [Configuration server](https://spring.io/projects/spring-cloud-config),[Eureka server](https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-eureka-server.html), [OenApi3 Specifications](https://swagger.io/specification/) for individual services documents and a consolidated swagger docs server which provides the consilidated view of all swagger docs. This Microservices examples uses Postgres , SQL & Mongo databases running inside docker containers for which we are also providing a docker compose file.## Salient features
Apart from about cloud capabilities we have also shown the improved [resilence](https://resilience4j.readme.io/docs), [Feign Client](https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html), [Circuit Breaker pattern](https://martinfowler.com/bliki/CircuitBreaker.html), [fallback](https://martinfowler.com/bliki/CircuitBreaker.html), [BlukHead](https://reflectoring.io/bulkhead-with-resilience4j/) , [Ratelimiters](https://resilience4j.readme.io/docs/ratelimiter) & [Retry mechanism ](https://resilience4j.readme.io/docs/retry) along with microservices architecture.## What are the component services & salient features
We are are using following services to deliver this Demo### HOTEL-SERVICE
Written in spring boot it is using Postgres as backend. It is enabled with Eureka client, Configuration server, Openapi3 swagger URL & it is also seeding consolidated documents to Common dcument server. It is being used by Rating-SERVER & USER-SERVICE. Its end poiunts are /hotels & /hotels/{hotelId}### RATING-SERVICE
Written in spring boot it is using MongoDB as backend. It is enabled with Eureka client, Configuration server, Openapi3 swagger URL & it is also seeding consolidated documents to Common dcument server. It is being used by USER-SERVICE. Its end poiunts are /ratings & /ratings/{ratingId}### USER-SERVICE
Written in spring boot it is using POSTGRESS as backend. It is enabled with Eureka client, Configuration server, Openapi3 swagger URL & it is also seeding consolidated documents to Common dcument server. Apart from about cloud capabilities we have also shown the improved resilence, Circuit Breaker pattern & Ratelimiters along with microservices architecture. Its end poiunts are /users & /users/{userId}. We have shown the demo of resilnece patterns and [Feign client](https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html) with this service.## API-GATEWAY
It is using Spring-Cloud-Gateway, enabled with Eureka client & Configuration server. This services could be tested by appending end points of each of HOTEL-SERVICE, RATING-SERVICE and USER-SERVICE.## ServiceRegistry
It is implemented with Eureka Service Registry with Spring Cloud. We are using Eureka client for Service discovery as well.## CONFIG-SERVER
It is implemented with Spring Cloud Configuration server. The configuration is served from our another GithUb repository.## Document-Server
It is implemented with Spring Fox lib of Spring Boot which consolidate the individual swagger docs of each of Microservice & present them on a single swagger dcument. Please select the spec for any service from the dropdown provided for the same.## docker-compose.yml
This service will start 2 Postgres conatiners, One mongo DB along with PGafmin & Mongo-express configuration to test it fully.