How much extra resource RabbitMQ shovels consume?
I have few Spring/Spring Boot apps that communicate over (clustered 3 nodes of RabbitMQ v3.10.0).
There is one publisher: App_A,
And a few Consumers: App_B, App_C, etc.
Previous dev implemented the following flow (I’ll describe for one destination, all others have the same):
- Each app is connected to a separate virtual host on the same RabbitMQ node(
vHost_A,vHost_B… etc. ). App_Apublishes exchangesvHost_A/exch_B(fanount) whichroutes to only onequeue_b.out- there is a shovel that shoves from
vHost_A/queue_b.outtovHost_B/exch_B vHost_B/exch_Bis also “fanount”, which routes to only onequeue_b.inApp_Bconsumes fromvHost_B/queue_b.in
As I understand, there is much easier and straight way to flow messages like:
App_Apublish tovHost_common/exch_Bwhich routes toqueue_b.inApp_Bconsumes fromvHost_common/queue_b.in
I’m new to RabbitMQ and unable to ask those devs what the purpose of those shovels is. And I have a few questions:
- Is it a common pattern to shovel like that? I was trying to find info, but couldn’t
- What pros of using that shovels flow?
- How much extra resources CPU/Memory can this shovel consume (compared to use of one
vHost_common)?
Thanks.
Read more here: Source link
