Load balancing with Ribbon
The main concept around Ribbon is a named client. That's why we may call other services using their names instead of the full address with hostname and port, without connecting to a service discovery. In that case, the list of addresses should be provided in the Ribbon configuration settings inside the application.yml
file.
Enabling communication between microservices using the Ribbon client
Let's proceed with the example. It consists of four independent microservices. Some of them may call endpoints exposed by the others. The application source code is available here:
https://github.com/piomin/sample-spring-cloud-comm.git.
In this example, we will try to develop a simple order system where customers may buy products. If a customer decides to confirm a selected list of products to buy, the POST
request is sent to the order-service
. It is processed by the Order prepare(@RequestBody Order order) {...}
method inside REST controller. This method is responsible for order...