rabbitmq-server/deps/rabbitmq_consistent_hash_ex.../examples/python
Michael Klishin 882492558d Python examples: bump Pika to 1.1 2020-06-12 13:28:08 +03:00
..
README.md Ditto for the Python example 2020-06-11 19:38:31 +03:00
example1.py Executable examples for Python 2018-08-21 18:05:13 +03:00
example2.py Executable examples for Python 2018-08-21 18:05:13 +03:00
example3.py Executable examples for Python 2018-08-21 18:05:13 +03:00
requirements.txt Python examples: bump Pika to 1.1 2020-06-12 13:28:08 +03:00

README.md

RabbitMQ Consistent Hash Exchange Examples in Python

This directory contains runnable Python examples for the RabbitMQ Consistent Hash Exchange plugin. They are the same examples as in the plugin's README file.

Prerequisites

The examples assume a RabbitMQ node with the rabbitmq_consistent_hash_exchange plugin enabled is running on localhost and that default user credentials and virtual host were not deleted.

Dependency Installation

pip install -r ./requirements.txt

Workload Details

This example uses four queues: q1 through q4. The first two of them are bound to a consistent hashing exchange with a weight of 1, while the last two of them use a weight of 2. This means that q3 and q4 will get roughly twice as many published messages routed to them compared to either q1 or q2.

Running the Example

# hashing on the routing key
python ./example1.py

# hashing on a custom header
python ./example2.py

# hashing on a message property
python ./example3.py

Inspecting Queue States

To list bindings to the exchange and their weights, use

rabbitmqctl list_bindings | grep chx

To list queues and the number of ready messages in them:

rabbitmqctl list_queues name messages_ready