Three separate microservices to calculate currency conversion in a distributed fault tolerant manner.
- Established Communication between Microservices
- Centralized Microservice Configuration with Spring Cloud Config Server
- Used Spring Cloud Bus to exchange messages about Configuration updates
- Simplified communication with other Microservices using Feign REST Client
- Implemented client side load balancing with Ribbon
- Implemented dynamic scaling using Eureka Naming Server and Ribbon
- Implemented API Gateway with Zuul
- Implemented Distributed tracing with Spring Cloud Sleuth and Zipkin
- Implemented Fault Tolerance with Zipkin
Application | Port |
---|---|
Limits Service | 8080, 8081, ... |
Spring Cloud Config Server | 8888 |
Currency Exchange Service | 8000, 8001, 8002, .. |
Currency Conversion Service | 8100, 8101, 8102, ... |
Eureka Naming Server | 8761 |
Zuul API Gateway Server | 8765 |
Zipkin Distributed Tracing Server | 9411 |
Application | URL |
---|---|
Limits Service | http://localhost:8080/limits POST -> http://localhost:8080/actuator/refresh |
Spring Cloud Config Server | http://localhost:8888/limits-service/default http://localhost:8888/limits-service/dev |
Currency Converter Service - Direct Call | http://localhost:8100/currency-converter/from/USD/to/INR/quantity/10 |
Currency Exchange Service | http://localhost:8000/currency-exchange/from/EUR/to/INR http://localhost:8001/currency-exchange/from/USD/to/INR |
Eureka | http://localhost:8761/ |
Zuul - Currency Exchange & Exchange Services | http://localhost:8765/currency-exchange/currency-exchange/from/EUR/to/INR http://localhost:8765/currency-convertor/currency-converter/from/USD/to/INR/quantity/10 |
Zipkin | http://localhost:9411/zipkin/ |
Spring Cloud Bus Refresh | http://localhost:8080/bus/refresh |