In this project, multiple microservices communicate with each other to provide the backend services of a minimalistic/sample movie rating application similar to IMDB.
- Spring Boot
- Spring Cloud Eureka (Service Discovery)
- Spring Cloud Hystrix (Dashboard, Circuit Breaker pattern, Bulkhead pattern)
- MovieInfoService provides the movie info by sending requests to TheMovieDB API.
- RatingsDataService provides the user's ratings for movies.
- MovieCatalogService acts as an accumulator that gets data from RatingsDataService and MovieInfoService to present it.
- DiscoveryServer is the Eureka server for service discovery.
You can run each project either using your IDE or mvn spring-boot:run starting from DiscoveryServer. Projects will run on the following endpoints:
- Discovery Server - http://localhost:8761
- Movie Catalog - http://localhost:8081/catalog/{userId}
- Movie Info - http://localhost:8082/movies/{movieId}
- Ratings Data - http://localhost:8083/ratings/{userId}
- Hystrix Dashboard - Go to http://localhost:8081/hystrix. Then enter https://localhost:8081/actuator/hystrix.stream to the inputbox.