Use docker to quickly deploy rabbitmq stand-alone machines and clusters

Environmental preparation

Node name ip address
node1 192.168.130.20
node2 192.168.130.19
node3 192.168.130.21

Install docker

slightly

Modify host (modify for each node)

The first name is the name of the host and the second is the name used to build the cluster (--hostname)

192.168.130.20   rq-node1
192.168.130.19   rq-node2
192.168.130.21   rq-node3

Install rabbitmq stand-alone

mkdir -p /root/rabbitm_sg/data
docker run -d --network=host \
--hostname rq-node --name rq-node \
-v /root/rabbitmq_sg/data:/var/lib/rabbitmq \
-p 15673:15672 -p 5673:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

Install rabbitmq cluster

Create directory (per node)

mkdir -p /root/rabbitmq/data

start up

node1


docker run -d --network=host \
--hostname rq-node1 --name rq-node1 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

node2

docker run -d --network=host \
--hostname rq-node2 --name rq-node2 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

node3

docker run -d --network=host \
--hostname rq-node3 --name rq-node3 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management

RABBITMQ_ERLANG_COOKIE needs to be consistent and content is arbitrary (required for cluster synchronization)

Join the cluster

node1

docker exec -it rq-node1 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

node2

docker exec -it rq-node2 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app

node3

docker exec -it rq-node3 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

Check cluster status

Enter the container and execute the following command

rabbitmqctl cluster_status

You can also use a browser to open a node: http://192.168.130.20:15672
enter the username and password (set above) and log in to view Nodes

Guess you like

Origin blog.csdn.net/kk3909/article/details/111938110