/CurrencyWise

Three separate microservices to calculate currency conversion in a distributed fault tolerant manner

Primary LanguageJava

CurrencyWise

Three separate microservices to calculate currency conversion in a distributed fault tolerant manner.

Microservices with Spring Boot and Spring Cloud

  • 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

Ports

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

URLs

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