Gabe
Gabe

Reputation: 6347

RabbitMQ - federated queues Vs exchange federation

I have set up a rabbit cluster and I publish messages into a fanout exchange every time something changes in a database.

I have dedicated queues bound to this exchange for some of my microservices that consume these updates and I also originally set up a dedicated queue for an external client so that they can federate it with their own rabbit infrastructure and consume a copy of every message.

Now I'm wondering whether allowing exchange federation rather than creating a new dedicated queue for each new external consumer would be a better approach since more and more users will come.

What are the pros and cons?

Thanks

Upvotes: 0

Views: 2930

Answers (1)

pinepain
pinepain

Reputation: 12859

As long as you manage permissions properly, the final decision is up to you. You can give a try to all variants first and find what will fit your actual needs.

Having local queue may have it pros and cons: it allows end-user to survive some outage with their infrastructure or network issue at the cost of your disk/memory, however, you may limit queue length and/or size.

I'd suggest you to take a look at Shovel plugin and Dynamic shovels. With local queue it may server a good job.

Comparing to federation, shovel is much simpler, e.g. it doesn't sync content between upstream and downstream but simply moves message from one queue to another in a reliable manner. As long as you don't need what federation provides, shovel could be a good choice.

Also, you may find this q/a useful (however, it might be a bit outdated) - https://stackoverflow.com/a/19357272.

Upvotes: 2

Related Questions