This project is a clinic system built using Java Spring Boot in a microservices architecture. The application is modular, scalable, and resilient, leveraging various Spring Boot components and tools for effective communication, monitoring, and deployment.
-
Doctor Service
- Manages doctor-related operations like profiles, schedules, and availability.
- Handles patient registration
-
Patient Service
- Handles patient registration, profiles, and medical history.
- Handles payments
-
Payment Service
- Mocks the payment process for clinic services.
-
API Gateway
- A single entry point for all client requests, routing them to the respective services.
-
Eureka Server
- A service registry for enabling service discovery and communication.
-
Admin Server
- Provides system monitoring and management functionalities.
- Service Discovery:
-> Implemented using Eureka Server for dynamic service registration and discovery. - Communication Between Services:
-> Achieved with OpenFeign, simplifying RESTful communication. - API Gateway:
-> Centralized routing and request handling via Spring Cloud Gateway. - Circuit Breaker:
-> Ensured service resilience using Resilience4j for fallback mechanisms. - Monitoring:
-> Used Spring Boot Admin for real-time monitoring of service health and logs. - Logging and Analytics:
-> Integrated ELK Stack (Elasticsearch, Logstash, Kibana) for effective log management and analysis. - Containerization:
-> Dockerized all services for isolated and consistent deployments. - Kubernetes Deployment:
-> Added Kubernetes (K8s) scripts for deploying and managing services efficiently.
- Java
- Spring Boot
- Spring Cloud
- Docker
- Resilience4j
- Elasticsearch, Logstash, Kibana (ELK Stack)
- Kubernetes
- Eureka Dashboard:
http://localhost:8761
- API Gateway:
http://localhost:7777
- Spring Boot Admin:
http://localhost:8888
- Kibana Dashboard:
http://localhost:5601