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 |