afermon / PiggyMetrics-turbine-stream-service

Proof of concept Microservice Architecture with Spring Boot, Spring Cloud, Docker and Kubernetes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Piggy Metrics (Kubernetes) - Turbine Stream Service

CircleCI GitHub license

In this project configuration, each microservice with Hystrix on board pushes metrics to Turbine via Spring Cloud Bus (with AMQP broker). The Monitoring project is just a small Spring boot application with Turbine and Hystrix Dashboard.

See below how to get it up and running.

Let's see our system behavior under load: Account service calls Statistics service and it responses with a vary imitation delay. Response timeout threshold is set to 1 second.

Hystrix Dashboard

0ms 500ms 800ms 1100ms
0 ms delay 500 ms delay 800 ms delay 1100 ms delay
Well behaving system. The throughput is about 22 requests/second. Small number of active threads in Statistics service. The median service time is about 50 ms. The number of active threads is growing. We can see purple number of thread-pool rejections and therefore about 30-40% of errors, but circuit is still closed. Half-open state: the ratio of failed commands is more than 50%, the circuit breaker kicks in. After sleep window amount of time, the next request is let through. 100 percent of the requests fail. The circuit is now permanently open. Retry after sleep time won't close circuit again, because the single request is too slow.

For more information please refer to the main repository afermon/PiggyMetrics-Kubernetes

Credits

About

Proof of concept Microservice Architecture with Spring Boot, Spring Cloud, Docker and Kubernetes

License:MIT License


Languages

Language:Java 80.3%Language:Dockerfile 19.7%