集群架构图

一)使用docker pull rabbitmq拉取最新rabbimq镜像

创建docker网络 rabbtimanet 用于haproxy和rabbimq通信
| 1 | docker network create rabbtimanet |

创建三节点rabbitmq容器
rabbitmq1:
| 1 | docker run -d --name=rabbitmq1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_NODENAME=rabbitmq1 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq1 --net=rabbtimanet rabbitmq:3.7.7-management |
rabbitmq2:
| 1 | docker run -d --name=rabbitmq2 -p 5673:5672 -p 15673:15672 -e RABBITMQ_NODENAME=rabbitmq2 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq2 --net=rabbtimanet rabbitmq:3.7.7-management |
rabbitmq3:
| 1 | docker run -d --name=rabbitmq3 -p 5674:5672 -p 15674:15672 -e RABBITMQ_NODENAME=rabbitmq3 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq3 --net=rabbtimanet rabbitmq:3.7.7-management |

rabbitmq集群
分别进入rabbitmq2 和rabbitmq3 容器(docker exec -it rabbitmq2 sh),(docker exec -it rabbitmq3 sh),执行以下:
| 1 2 3 4 | rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1 rabbitmqctl start_app |

部署Haproxy
在/home/haproxy下新建两个文件Dockerfile和haproxy.cfg 文件如下:

haproxy.cfg 内容如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | global daemon maxconn 256 defaults mode http timeout connect 5000ms timeout client 5000ms timeout server 5000ms listen rabbitmq_cluster ##监听5677端口转发到rabbitmq服务 bind 0.0.0.0:5677 option tcplog mode tcp balance leastconn server rabbit1 rabbitmq1:5672 check inter 2s rise 2 fall 3 server rabbit2 rabbitmq2:5672 check inter 2s rise 2 fall 3 server rabbit3 rabbitmq3:5672 check inter 2s rise 2 fall 3 listen http_front ##haproxy的客户页面 bind 0.0.0.0:80 stats uri /haproxy?stats listen rabbitmq_admin ##监听8001端口转发到rabbitmq的客户端 bind 0.0.0.0:8001 server rabbit1 rabbitmq1:15672 check inter 2s rise 2 fall 3 server rabbit2 rabbitmq2:15672 check inter 2s rise 2 fall 3 server rabbit2 rabbitmq3:15672 check inter 2s rise 2 fall 3 |
Dockerfile内容如下:

在haproxy.cfg同目录下执行:


创建两个haproxy容器
| 1 | docker run -d --name rabbitmq-haproxy -p 8090:80 -p 5677:5677 -p 8001:8001 --net=rabbtimanet rabbit-haproxy:latest |
| 1 | docker run -d --name rabbitmq-haproxy2 -p 8091:80 -p 5678:5677 -p 8002:8001 --net=rabbtimanet rabbit-haproxy:latest |

通过外部8090访问haproxy容器的80端口,外部8001访问haproxy容器8001,外部5677访问haproxy 容器5677端口


部署Keepalived
https://blog.csdn.net/qq_21108311/article/details/82973763
参考博客:https://www.cnblogs.com/CaesarLinsa/p/11037613.html 此博客在部署haproxy时可能会出现权限问题,因此,我使用了Dockerfile的方式
关注微信公众号,某课资源、技术精讲、妹纸免费看

最后
以上就是单纯砖头最近收集整理的关于Docker环境下搭建Rabbitmq+Haproxy+Keepalived高可用负载均衡集群 集群架构图 部署Keepalived的全部内容,更多相关Docker环境下搭建Rabbitmq+Haproxy+Keepalived高可用负载均衡集群 内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复