A microservices-based backend application built using Java and Spring Boot. The project demonstrates how multiple independent services communicate with each other using Spring Cloud components.
Acts as the single entry point for client requests and routes requests to the appropriate microservice.
Provides service discovery so that microservices can locate and communicate with each other.
Centralizes configuration for the different microservices.
Handles user-related operations.
Handles hotel-related operations and hotel information.
Handles ratings and review-related operations.
Client
|
v
API Gateway
|
+-------------+-------------+
| | |
v v v
User Service Hotel Service Rating Service
| | |
+-------------+-------------+
|
Service Registry
|
Config Server
- Java
- Spring Boot
- Spring Cloud
- Spring REST API
- Microservices Architecture
- API Gateway
- Service Registry
- Config Server
- Maven
- Microservices-based architecture
- Independent services for different business responsibilities
- Service discovery using Service Registry
- Centralized configuration using Config Server
- API Gateway for request routing
- REST APIs for communication between services
- Separate User, Hotel, and Rating services
Microservices
│
├── ApiGateway
├── ConfigServer
├── RatingService
├── ServiceRegistry
├── UserService
└── hotelService
git clone https://github.com/ramn-x/Microservices.gitOpen the project in IntelliJ IDEA or another Java IDE.
Start the services in the required order:
- Config Server
- Service Registry
- API Gateway
- User Service
- Hotel Service
- Rating Service
Use Postman or another REST API client to test the available endpoints through the API Gateway.
- Add centralized logging
- Add distributed tracing
- Add automated tests
- Containerize services using Docker
- Deploy the application to the cloud
Raman Kumar
Java Backend Developer