/rabbitmq-cluster-check

Some tests with RabbitMQ

Primary LanguagePHP

RabbitMQ checks

The reports

Run tests

cd ./clients/php
# console 1
php 12_reconnecting_sender.php
# console 2
php 12_reconnecting_receiver.php

Set up the cluster

1. erlang cookie for cluster

Make cfg file copy, update and set correct permissions.

cp ./docker-containers/rabbitmq/.erlang.cookie.dist ./docker-containers/rabbitmq/.erlang.cookie
sudo chmod 0600 ./config/.erlang.cookie

2. enable http management

Enable plugins in ./docker-containers/rabbitmq/enabled_plugins file, or activate with command line:

docker-compose exec rabbit1 bash
rabbitmq-plugins enable rabbitmq_management
restart docker

3. enable cluster

Do for rabbit2 and rabbit3 containers.

docker-compose exec rabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster ${RABBIT_1_NODENAME}
rabbitmqctl start_app

Management web interface:
http://${RABBIT_1_NODENAME}:15672/
default user: guest / guest

4. haproxy balancer

Make cfg file copy and update.

cp ./docker-containers/haproxy/haproxy.cfg.dist ./docker-containers/haproxy/haproxy.cfg

5. queue replication

Enable queue replication between cluster nodes

docker-compose exec rabbit1 bash
rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

Notes

Docker commands to test networks, rabbitmq-cluster-check is project folder

docker network inspect rabbitmq-cluster-check_default
docker network disconnect rabbitmq-cluster-check_default rabbitmq-cluster-check_rabbit1_1
docker network connect rabbitmq-cluster-check_default rabbitmq-cluster-check_rabbit1_1