In this project, multiple microservices communicate with each other to provide the backend services of a minimalistic/sample movie rating application similar to IMDB.
Base Code From: https://github.com/yigiterinc/spring-boot-microservices
- Spring Boot
- Spring Cloud Eureka (Service Discovery)
- Spring Cloud Hystrix (Dashboard, Circuit Breaker pattern, Bulkhead pattern)
- Spring io.grpc
- Mysql
- MongoDB
- ProtoBuf
- 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.
- TrendingMoviesService provides movies with highest average rating.
- DiscoveryServer is the Eureka server for service discovery.
- Configure Mysql connection details in
application.properties
in RatingsDataService and TrendingMoviesService. - Configure MongoDB connection details in
application.properties
in MovieInfoService. - 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}
- Trending Movies - gRPC: 8085-8086
- Hystrix Dashboard - Go to http://localhost:8081/hystrix. Then enter https://localhost:8081/actuator/hystrix.stream to the inputbox.