Rebus.RabbitMq
Rebus.RabbitMq copied to clipboard
Feature: adding support for RabbitMQ consistent hash exchange type
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, multipleNqueues, 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
iin[0 .. N)based on the hashed routing key; - The topology preserves message order as FIFO within each message partition
[0 .. N)
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.
:x: dmitrynovik
:x: 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.