[toc]
环境
主机 192.168.2.47 hidden1 (主机名)
主机 192.168.2.48 hidden2 (主机名)
主机 192.168.2.44 haproxy (负载均衡代理)
两台主机已经搭建好rabbitmq 的单机版
二,集群的搭建
1,修改host
在2台机器上的hosts 加入如下:
192.168.2.47 hidden1
192.168.2.48 hidden2
2,复制.erlang.cookie
1)首先,上诉两台机器rabbitmq 已经启动,此时会在/var/lib/rabbitmq/.erlang.cookie 目录(默认情况下)生成cookie文件,用于erlang在分布式节点之间进行通讯,此cookie文件的内容必须相同,否则无法通讯。
2)[root@hidden1 ~]ll -a /var/lib/rabbitmq/
可看到文件 .erlang.cookie
3)将 .erlang.cookie复制到另一台虚拟机
[root@hidden1 ~]scp /var/lib/rabbitmq/.erlang.cookie root@hidden2:/var/lib/rabbitmq
这样两台rabbitmq就可以进行通信。
4)改变了节点cookie之后不能对节点通讯,此时用kill指令关掉rabbitmq进程重启即可,当然也可以优雅的先关闭,在修改cookie:
./rabbitmqctl -n rabbit@rabbit2 stop关闭,然后修改cookie
注意:如果修改了节点名,接后续操作必须-n指明,否则erlang无法找到节点
5)主机192.168.2.48 重启rabbitmq
[root@hidden2 ~]systemctl restart rabbitmq-server
3,两台rabbitmq组成集群(特别声明,以下操作都需要指定节点操作尤其是节点的启动和关闭,否则会报错)
1)停止其中一台rabbimq机器的运行
[root@hidden2 ~]rabbitmqctl -n rabbit@hidden2 stop_app
[root@hidden2 ~]rabbitmqctl -n rabbit@hidden2 reset
2)将这台rabbitmq机器加入到另外一台rabbitmq机器,组成集群。
[root@hidden2 ~]rabbitmqctl join_cluster --ram rabbit@hidden1
3)启动这台rabbitmq机器
[root@hidden2 ~]rabbitmqctl start_app
4)查看集群状态
[root@hidden2 ~]rabbitmqctl cluster_status
5) 也可以去其中一台的http 管理界面查看
4两台rabbitmq 进行数据同步(镜像模式)
输入以下命令:
[root@hidden1 ~]rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
这样两台rabbitmq就可以数据同步了。
5 安装haproxy
1.yum install -y haproxy
2.启动haproxy
systemctl start haproxy
3.查看haproxy状态
systemctl status haproxy
6 两台rabbitmq 通过haproxy 组成高可用集群
1.编辑Haproxy配置文件
vi /etc/haproxy/haproxy.cfg
添加以下语句:
····
listen rabbitmq_local_cluster 127.0.0.1:5672
mode tcp
timeout client 3h
timeout server 3h
timeout connect 3h
balance roundrobin
server rabbit1 192.168.2.47:5672 check inter 5000 rise 2 fall 2
server rabbit2 192.168.2.48:5672 check inter 5000 rise 2 fall 2
····
7 程序端去访问 192.168.2.44:5672
详细解决方案
rabbitmq+haproxy 高可用集群二
热度:32 发布时间:2024-01-09 05:18:57.0
相关解决方案
- rabbitMq 性能引见
- Django 1.5.4 课题23 Celery RabbitMQ
- rabbitmq 连接数量一直增多
- rabbitmq php tutorial -一
- RabbitMQ (5) rabbitmq集群
- RabbitMQ (4) 运行和管理rabbitmq(本人windows环境)
- RabbitMQ (2) 理解消息通信
- rabbitMQ 和 kafka的区别
- Java 最常见的 208 道面试题:第十四模块答案 RabbitMQ
- 【消息中间件】- ActiveMQ/Kafka/RocketMQ/RabbitMQ
- HAProxy Enterprise企业级waf简介
- [rabbitMQ] linux rabbit相关命令
- redis rabbitmq kafka beanstalkd比较
- rabbitmq 用户管理和虚拟机管理
- rabbitmq+haproxy 高可用集群二
- haproxy 用命令踢掉和开启某个项目和主机
- springboot rabbitmq 自定义连接工厂
- RabbitMQ 消息变成 死信队列的情况
- springboot RabbitMQ 发送延时消息(可用于订单的实时失效)
- RabbitMQ 学习笔记 -- 06 初探@RabbitListener
- RabbitMQ(三):RabbitMQ使用详解
- RabbitMQ 发布-订阅
- RabbitMQ 中arguments详解(系列一之Message TTL)
- RabbitMQ 集群与高可用配置