- This module acts as a proxy server.
- It provides routing to services (or different instances of the same service) registered with the Netflix Eureka service by load balancer.
- Routing settings are defined in config-service > configs > api-gateway-service.yml file.
2. config-service (contains all module configs - Spring Cloud Config Server )
- It keeps the configs of the modules.
- It has been created for manage configs from one service and at the runtime.
- Modules access the config-service with the `spring.cloud.config` value in the bootstrap.yml file.
3. discovery-service (Registration and Discovery service - Netflix Eureka)
- It has been created to monitor the services.
- Services access and register to this service with the `eureka.client.service-url` value in the properties file.
4. product-service (Product microservice - Spring Boot Application)
- This service is accessed through api-gateway-service.
- Exception handling is managed with @ControllerAdvice service.
5. order-service (Order microservice - Spring Boot Application)
- This service is accessed through api-gateway-service.
- Exception handling is managed with @ControllerAdvice service.
6. customer-service (Customer microservice - Spring Boot Application)
- This service is accessed through api-gateway-service.
- Exception handling is managed with @ControllerAdvice service.
๐ Run all instances
docker-compose.yml file has been created to run all modules.
build-maven.sh file is help to create the maven packages.
build-docker.sh file is help to create docker images.
run.sh file gets maven packages for all modules, creates the docker images, and starts the whole environment with docker-compose.