RabbitMQ集群
rabbitmq有3种模式,但集群模式是2种。
? 详细如下: 单一模式:即单机情况不做集群,就单独运行一个rabbitmq而已。之前一直在用
集群搭建
准备两台Liunx服务器,并安装好RabbitMQ。
127.0.0.1 A localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 A localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.152.129 A
192.168.204.130 B
? 二号服务器
127.0.0.1 B localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 B localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.204.141 A
192.168.204.142 B
考虑到一些CentOS改Host文件后主机名不变,可以执行以下命令改变主机名。
[root@a ~]# hostnamectl set-hostname 主机名
[root@a ~]# reboot ##重启liunx
? 2、相互通信,cookie必须保持一致,同步 rabbitmq的cookie 文件:跨服务器拷贝 .erlang.cookie (隐藏文件,使用 ls -all 显示)
.erlang.cookie 文件在/var/lib/rabbitmq/下
为了保持rabbitmq的cookie文件一致性,我们可以跨服务器拷贝.erlang.cookie文件
root@A opt]# scp /var/lib/rabbitmq/.erlang.cookie 192.168.204.142:/var/lib/rabbitmq
? 3、两台服务器都关闭防火墙,开启Rabbitmq服务
[root@A ~]# systemctl stop firewalld
[root@A ~]# systemctl start rabbitmq-server
? 4、加入集群节点
[root@B ~]# rabbitmqctl stop_app ##关闭本机RabbitMQ节点
[root@B ~]# rabbitmqctl join_cluster rabbit@A ##将本机节点集群加入A节点
[root@B ~]# rabbitmqctl start_app ##启动本机节点
5、查看管理端
-
搭建集群结构之后,之前创建的交换机、队列、用户都属于单一结构,在新的集群环境中是 不能用的 -
所以在新的集群中重新手动添加用户即可(任意节点添加,所有节点共享) -
[root@A ~]# rabbitmqctl add_user 用户名 密码
[root@A ~]# rabbitmqctl set_user_tags 用户名 administrator
[root@A ~]# rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"
-
注意:当节点脱离集群还原成单一结构后,交换机,队列和用户等数据 都会重新回来 -
这就是集群成功后的页面,但是默认集群是普通模式,系统可用性不高。因此我们要设置为镜像模式
[root@A ~]# rabbitmqctl set_policy xall "^" '{"ha-mode":"all"}'
这样镜像模式就设置成功了,在任意节点发送消息后,集群节点消息同步。
- 除了以上方式设置镜像模式以外,还可以在管理页面设置
HAProxy负载均衡
安装和配置
HAProxy下载:http://www.haproxy.org/download/1.8/src/haproxy-1.8.12.tar.gz
[root@localhost opt]# tar -zxvf haproxy-1.8.12.tar.gz
[root@localhost opt]# uname -r
? 根据内核版本选择编译参数
-
进入目录,编译和安装 [root@localhost opt]# cd haproxy-1.8.12
[root@localhost haproxy-1.8.12]# make TARGET=linux2628
[root@localhost haproxy-1.8.12]# make install PREFIX=/usr/local/haproxy
-
安装成功后,查看版本 [root@localhost haproxy-1.8.12]# /usr/local/haproxy/sbin/haproxy -v
-
配置启动文件,复制haproxy文件到/usr/sbin下 ,复制haproxy脚本,到/etc/init.d下
[root@localhost haproxy-1.8.12]# cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
[root@localhost haproxy-1.8.12]# cp ./examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.8.12]# chmod 755 /etc/init.d/haproxy
[root@localhost haproxy-1.8.12]# useradd -r haproxy
[root@localhost haproxy-1.8.12]# mkdir /etc/haproxy
[root@localhost haproxy-1.8.12]# vim /etc/haproxy/haproxy.cfg
[root@localhost haproxy]# service haproxy start
- 访问监控中心:http://192.168.204.143:8100/monitor
- 记得关闭防火墙: systemctl stop firewalld
|