1、思想:
使用HAproxy进行反向代理,rabbitmq采用队列的方式同步数据。
创建三个节点:分别为node1、2、3 分别占用端口
5672,15672、5673,15673, 5674,15674
docker run -d --hostname node1 --name rabbitmq1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:3-management
docker run -d --hostname node2 --name rabbitmq2 -p 5673:5672 -e RABBITMQ_DEFAULT_USER=rabbitmq --link rabbitmq1:node1 -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:3-management
docker run -d --hostname node3 --name rabbitmq3 -p 5674:5672 -e RABBITMQ_DEFAULT_USER=rabbitmq --link rabbitmq2:node2 --link rabbitmq1:node1 -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:3-management
第一步:进入node1进行操作
docker exec -it rabbitmq-01 bash #进入node1
rabbitmqctl stop_app #停止node1
rabbitmqctl reset #重置
rabbitmqctl start_app #启动node1
第二步:进入到node2进行相同操作,将node2加入到以node1为头的集群
docker exec -it rabbitmq-02 bash #进入node2
rabbitmqctl stop_app #停止node2
rabbitmqctl reset #重置
rabbitmqctl join_cluster --ram rabbit@node1 #加入集群
rabbitmqctl start_app #启动node2
第三步:进入到node3执行以上相同操作
结果:
第四步:安装配置HAProxy进行负载均衡