rabbitmq_sharding README updates

This commit is contained in:
Michael Klishin 2021-03-17 14:26:31 +03:00
parent 6c66d814d7
commit f3969f57a3
No known key found for this signature in database
GPG Key ID: E80EDCFA0CDB21EE
1 changed files with 9 additions and 36 deletions

View File

@ -67,7 +67,7 @@ of the number of shards (covered below) is not needed or desired, consider using
instead of this plugin. instead of this plugin.
## Auto-scaling ## Auto-scaling When Nodes are Added
One of the main properties of this plugin is that when a new node One of the main properties of this plugin is that when a new node
is added to the RabbitMQ cluster, then the plugin will automatically create is added to the RabbitMQ cluster, then the plugin will automatically create
@ -115,18 +115,10 @@ queues in an uneven way.
## Load Distribution and Consumer Balancing ## Load Distribution and Consumer Balancing
As of RabbitMQ 3.8.1, the plugin is no longer affected by the queue master locator policy when using mirrored queues. Please read below if you use a previous version. Shard queues declaration by this plugin will ignore queue master locator policy, if any.
This plugin can be affected by [queue master locator policy used](https://www.rabbitmq.com/ha.html) in
the cluster as well as client connection load balancing strategy.
"Minimum masters" is a queue master locator that is most in line with the goals of ## How Evenly Will Messages Be Distributed?
this plugin.
For load balancers, the "least connections" strategy is more likely to produce an even distribution compared
to round robin and other strategies.
### How Evenly Will Messages Be Distributed?
As with many data distribution approaches based on a hashing function, As with many data distribution approaches based on a hashing function,
even distribution between shards depends on the distribution (variability) of inputs, even distribution between shards depends on the distribution (variability) of inputs,
@ -135,37 +127,18 @@ the more even will message distribution between shareds be. If all messages had
the same routing key, they would all end up on the same shard. the same routing key, they would all end up on the same shard.
## Installation
## Installing ## This plugin ships with modern versions of RabbitMQ.
Like all plugins, it [must be enabled](https://www.rabbitmq.com/plugins.html) before it can be used:
### RabbitMQ 3.6.0 or later
As of RabbitMQ `3.6.0` this plugin is included into the RabbitMQ distribution.
Like any other [RabbitMQ plugin](https://www.rabbitmq.com/plugins.html) it has to be enabled before it can be used:
``` bash ``` bash
# this might require sudo
rabbitmq-plugins enable rabbitmq_sharding rabbitmq-plugins enable rabbitmq_sharding
``` ```
You'd probably want to also enable the Consistent Hash Exchange
plugin, too.
### With Earlier Versions ## Usage
Install the corresponding .ez files from our
[Community Plugins archive](https://www.rabbitmq.com/community-plugins/).
Then run the following command:
```bash
rabbitmq-plugins enable rabbitmq_sharding
```
You'd probably want to also enable the Consistent Hash Exchange
plugin, too.
## Usage ##
Once the plugin is installed you can define an exchange as sharded by Once the plugin is installed you can define an exchange as sharded by
setting up a policy that matches the exchange name. For example if we setting up a policy that matches the exchange name. For example if we