Skip to content

Conversation

@dmitrynovik
Copy link

@dmitrynovik dmitrynovik commented Dec 30, 2024

Why Consistent Hashing?

A RabbitMQ queue is running on at most 1 CPU core, feature of Erlang Beam VM architecture.
To achieve horizontal scalability, it is advised to have multiple queues.

One variant of such topology is declaring a [Consistent Hash Exchange] (https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbitmq_consistent_hash_exchange/README.md):

  • one exchange of type x-consistent-hash, multiple N queues, all bound to the same consistent hash exchange;
  • the message is published to one above exchange but then sent exactly once by the RabbitMQ to a queue i in [0 .. N) based on the hashed routing key;
  • The topology preserves message order as FIFO within each message partition [0 .. N)

@CLAassistant
Copy link

CLAassistant commented Dec 30, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 2 committers have signed the CLA.

❌ dmitrynovik
❌ dmitrychilli


dmitrynovik seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@dmitrynovik dmitrynovik changed the title Feature: adding support for RabbitMQ consistent has exchange type Feature: adding support for RabbitMQ consistent hash exchange type Dec 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants