This version includes the following features:
To Build & Deploy through Maven and docker run the following commands:
a) mvn clean install from root directory
b) $ docker-compose up
docker-compose will create a bridge network and launch three sprint boot microservices containers (one for each; test1, test2, test3), and one MySQL DB conianter. test1 service will interact with database to fetch the list of items.
All should be set till this point. Wait for all containers to up and you can now test the deployments by hitting following URLs.
Eureka: http://localhost:8761/
Zuul: http://localhost:8765/
Test1 Service: http://localhost:8765/api/test1
Test1 Service: hits DB to list the list of items http://localhost:8765/api/test1/items
Test1 Service: hits DB to fetch the item with id 102 http://localhost:8765/api/test1/item/102
Test2 Service: http://localhost:8765/api/test2
Test2 Service: calls test1 service to get the list of items. http://localhost:8765/api/test2/test1/items
Please follow the link given below ro understand how test2 service calls test1 service methods https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html
Test3 Service: http://localhost:8765/api/test3
To stop & shut down, run the following command:
$ docker-compose down --rmi all
Hystrix Circuit Breaker:- It is the implementation of Circuit Breaker Patter and has been configured to provide fallback response when circuit is brake. There is a dashboard available at below URL to monitor the circuits.
Hystrix Dashboard: http://localhost:8765/hystrix
You can find the Hystrix Stream at below URL:
Hystrix Stream: http://localhost:8765/hystrix.stream
Load Balancing (Ribbon) - Ribbon Load Balancer is configured with Zuul.
Zipkin with Sleuth: These frameworks have been integrated to enable distributed logging & tracing.
Zipkin access URL: http://localhost:9411