spring-boot-microservices icon indicating copy to clipboard operation
spring-boot-microservices copied to clipboard

A fundamental level movie application that was created to learn Microservices & Spring Cloud

spring-boot-microservices

In this project, multiple microservices communicate with each other to provide the backend services of a minimalistic/sample movie rating application similar to IMDB.

Technologies

  • Spring Boot
  • Spring Cloud Eureka (Service Discovery)
  • Spring Cloud Hystrix (Dashboard, Circuit Breaker pattern, Bulkhead pattern)

Summary

  • 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.

Screen Shot 2021-09-23 at 16 48 57

Running

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.