[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:5670
mode tcp
option tcplog
balance roundrobin
server rabbit1 192.168.2.47:15672 check inter 5000 rise 2 fall 2
server rabbit2 192.168.2.48:15672 check inter 5000 rise 2 fall 2
····
7 程序端去访问 192.168.2.44:15672
环境
主机 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:5670
mode tcp
option tcplog
balance roundrobin
server rabbit1 192.168.2.47:15672 check inter 5000 rise 2 fall 2
server rabbit2 192.168.2.48:15672 check inter 5000 rise 2 fall 2
····
7 程序端去访问 192.168.2.44:15672