Basic load test for Python aioamqp library
346
Basic load test for Python aioamqp library
In producer mode starts 100 coroutines that each asynchronously send a blank message to RabbitMQ and then restart themself
In consumer mode receives and acknowledges messages as quickly as it can from RabbitMQ
In both modes each time a message is sent, or acknowledged a counter is updated. When a multiple of 10000 messages is sent, a log message is shown
Usage: aioamqp_loadtest_cli.py [OPTIONS] MODE
Options:
--host TEXT
--port INTEGER
--username TEXT
--password TEXT
--queue TEXT
--exchange TEXT
--pidfile TEXT
--debug / --no-debug
--help Show this message and exit.
The Dockerfile provided runs a RabbitMQ server, a producer, and a consumer that all interact correctly with each other.
$ docker run -it --rm thatpanda/aioamqp-loadtest:latest
...
INFO 2016-08-29 06:44:11,446 producer _rmq_produce 156: 10000 messages sent
INFO 2016-08-29 06:44:12,259 consumer _on_message 180: 10000 messages acknowledged
INFO 2016-08-29 06:44:12,769 producer _rmq_produce 156: 20000 messages sent
INFO 2016-08-29 06:44:14,297 producer _rmq_produce 156: 30000 messages sent
INFO 2016-08-29 06:44:14,348 consumer _on_message 180: 20000 messages acknowledged
Optionally, you can also build the Docker image locally. If you don't do this, the auto-built image from Docker Hub will be pulled and should be exactly the same.
$ docker build -t thatpanda/aioamqp-loadtest:latest .
...
Successfully built deadbeefdead
Ctrl+C or any kind of kill signal will cleanly stop all services in Docker, and both clients.
Content type
Image
Digest
Size
110.8 MB
Last updated
about 10 years ago
docker pull thatpanda/aioamqp-loadtest