Learning about the Turbine server
There are some integrations in our microservices group; the Bookings
microservice calls the Fares
microservice and the Passengers
microservice, these integrations are done using Hystrix to make it more resilient and fault tolerant.
However, in the microservices world, there are several instances of service. This will require us to aggregate the Hystrix command metrics by instance. Managing the instances panel by panel is not a good idea. The Turbine server helps developers in this context.
By default, Turbine pulls metrics from servers run by Hystrix, but it is not recommended for cloud environments because it can consume high values of network bandwidth and it will increase the traffic costs. We will use Spring Cloud Stream RabbitMQ to push metrics to Turbine via the Advanced Message Queuing Protocol (AMQP). Due to this, we will need to configure the RabbitMQ connections and put two more dependencies in our microservices, the dependencies are:
<dependency...