Spring Boot 2.0 directly supports the asynchronous handling of send and receive messages with asynchronous results. Some microservices purposely implement this kind of exchange mechanism to avoid traffic and blocking problems when several of them send request messages at the same time to an exchange with one routing key. Moreover, this solution is most likely favored due to the presence of client-based callbacks that give microservices resiliency when the consumer
is down or has crashed.
Again, open ch11-ipc-emp
and ch11-ipc-login
, and add the following request
and reply
queues, @RabbitListener
response transactions, and client services that will showcase the use of AsyncRabbitTemplate
.