Instructions

July 17, 2025 ยท View on GitHub

  1. Run docker compose up --detach --wait
  2. You need four terminals/panes. I'm using tmux to split the terminal into panes.
    Run tmux new-session \; split-window -v \; split-window -v \; select-pane -U \; split-window -h \; select-pane -U \;
  3. In the bottom left pane run docker compose exec consumer-a python /usr/src/consumer.py "*.critical"
  4. In the bottom right pane run docker compose exec consumer-b python /usr/src/consumer.py "kernel.*"
  5. In the bottom pane run docker compose exec consumer-c python /usr/src/consumer.py "#"
  6. In the top pane run for i in {1..6}; do docker compose exec producer python /usr/src/producer.py; done
  7. In the top pane run docker compose down --volumes && docker network rm -f rabbitmq

To access RabbitMQ management console go to localhost:15672 and use following credentials:

  • Username: bugs
  • Password: bunny

Terminal

Topics

Testing

bash src/scripts/rabbitmq-tests-e2e.sh
docker compose exec producer bash -c "python -m unittest discover /usr/src"
docker compose exec producer python -m unittest /usr/src/tests/test_producer.py
docker compose exec consumer-a python -m unittest /usr/src/tests/test_consumer.py

Debug

docker compose exec broker rabbitmqctl list_queues
docker compose exec broker rabbitmqctl list_bindings
docker compose exec broker rabbitmqctl list_exchanges