[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
- AMQP 跟 RabbitMQ 入门
- 请帮忙看下 haproxy 的有关问题,点击 continue 不能等待足够长的时间就显示结果, 多谢
- 请帮忙看下这个 haproxy 的配置以及有关问题,搞不明白哪里面出错,多谢
- rabbitmq 连接数量一直增多
- rabbitmq php tutorial -一
- RabbitMQ php 施用
- 了解 OpenStack 高可用(HA)(4):RabbitMQ 和 Mysql HA
- RabbitMQ 从入门到精通(二)
- linux离线安装 rabbitmq
- RabbitMQ:消息发送确认 与 消息接收确认(ACK)
- 架构师日记——Kafka、RabbitMQ、RocketMQ等消息中间件的对比
- 关于keepalived+haproxy+mycat架构深入理解
- CentOS 搭建 RabbitMQ 服务端及 web 管理界面配置
- MQ(消息队列框架)选型对比:ActiveMQ, RabbitMQ, RocketMQ, Kafka
- RabbitMQ 登录管理端
- RabbitMQ-3.4.1安装手册
- RabbitMQ -- part II
- RabbitMQ -- part I
- haproxy+keepalived实现hiveserver2负载均衡(源码和yum安装haproxy+keepalived)
- rabbitMQ 学习(三)添加exchange交换机,队列queue
- RabbitMQ 学习(二)安装
- rabbitMQ 学习(一)介绍
- linux centos docker mysql redis mongodb rabbitmq 安装配置 基本使用
- Docker+TP5+RabbitMQ+入消息队列+自动消费队列
- RabbitMQ 简介以及使用场景
- deepin(unbuntu)系统 java+redis+rabbitmq+mysql+idea等开发环境安装
- 综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ
- RabbitMq 启动项目org.springframework.amqp.AmqpIOException: java.io.IOException