Linux环境下 RabbitMQ安装与高可用集群搭建
软件:虚拟机3台node02:ip 192.168.203.51node03:ip 192.168.203.52node04:ip 192.168.203.53CentOS7RabbitMQ v3.9.10erlang v24.1.6HaproxyRabbitMQ安装node03、node04分别安装RabbitMQ1、新建下载文件...
软件:
虚拟机3台
node02:ip 192.168.203.51
node03:ip 192.168.203.52
node04:ip 192.168.203.53
CentOS7
RabbitMQ v3.9.10
erlang v24.1.6
Haproxy
RabbitMQ安装
node03、node04分别安装RabbitMQ
1、新建下载文件夹
# mkdir soft
# cd soft
2、下载 erland和rabbitMQ安装包
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.10/rabbitmq-server-3.9.10-1.el7.noarch.rpm
# wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_24.1.6-1~centos~7_amd64.rpm
3、安装erlang
# rpm -ivh esl-erlang_24.1.6-1~centos~7_amd64.rpm --nodeps
4、安装rabbitMQ
# rpm -ivh rabbitmq-server-3.9.10-1.el7.noarch.rpm --nodeps
5、开启web界面管理插件
# rabbitmq-plugins enable rabbitmq_management
6、防火墙设置
# firewall-cmd --zone=public --add-port=5672/tcp --permanent //rabbitMQ端口
# firewall-cmd --zone=public --add-port=15672/tcp --permanent //web界面管理访问端口
#firewall-cmd --reload
7、设置开机自启动
# systemctl enable rabbitmq-server
8、重启虚拟机
9、查看MQ运行状态
# systemctl status rabbitmq-server.service
10、命令
服务
# rabbitmq-server //前台启动
# rabbitmq-server -detached //后台启动服务
# rabbitmqctl stop //停止
应用
# rabbitmqctl start_app //启用
# rabbitmqctl stop_app //停止
//guest用户默认不支持远程访问,这里创建一个新角色
# rabbitmqctl add_user admin admin //创建用户名为admin,密码为admin的用户
# rabbitmqctl set_user_tags admin administrator //用户有4种角色:administrator 、 monitoring 、policymaker 、management,这里设置用户角色为最高级administrator
#rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'//设置admin权限,分别是 配置、读、写权限
11、访问MQ界面管理
http://虚拟机ip:15672/
集群
本例搭建工作中最常用的镜像集群
1、修改node03 node04 hostname
//node3
# vi /etc/hostname //修改为node03
//node4
# vi /etc/hostname //修改为node04
2、分别修改2台虚拟机host文件
# vi /etc/hosts
添加
192.168.203.53 node04
192.168.203.52 node03
3、复制erlang cookie文件
//node03复制到node04
//erlang cookie是erlang分布式的token文件,集群内相同的.erlang.cookie文件才允许彼此通信
# scp /var/lib/rabbitmq/.erlang.cookie 192.168.203.53:/var/lib/rabbitmq/
4、分别设置.erlang.cookie文件权限为拥有者可使用权限 400
# chmod 400 /var/lib/rabbitmq/.erlang.cookie
5、防火墙设置 增加2个端口
# firewall-cmd --zone=public --add-port=4369/tcp --permanent //erlang主机发现端口
# firewall-cmd --zone=public --add-port=25672/tcp --permanent //erlang消息发送端口
# firewall-cmd --reload
6、重启node03、node04虚拟机
7、配置集群
将node04加入到node03集群中复制
//node03上查看当前 cluster name
# rabbitmqctl cluster_status //node03的cluster name为 rabbit@node03,在下面第三步join_cluster填上
# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@node03
# rabbitmqctl start_app
8、访问web界面管理查看节点是否已加入
9、分别在node03和node04上创建测试queue,自动同步到集群中的所有机器
集群负载均衡
本例使用Haproxy做MQ集群的负载均衡
1、node02上安装Haproxy
# yum install haproxy
2、修改配置文件
# vi /etc/haproxy/haproxy.cfg
//添加
#对MQ集群进行监听
listen rabbitmq_cluster
bind 0.0.0.0:5672 //通过5672对node03、node04进行映射
option tcplog //记录tcp连接的状态和时间
mode tcp //对TCP协议转发
option clitcpka //长连接模式
timeout connect 1s //haproxy与mq建立连接的超时时间
timeout client 10s //客户端与haproxy最大空闲时间
timeout server 10s //服务器与haproxy最大空闲时间
balance roundrobin //负载均衡策略(轮询)
server node1 192.168.203.52:5672 check inter 5s rise 2 fall 3 //每5秒发送一次心跳包,如连续两次有响应则代表状态良好,如连续三次没有响应,则视为服务故障,该节点将被剔除
server node2 192.168.203.53:5672 check inter 5s rise 2 fall 3
#开启haproxy监控服务
listen http_front
bind 0.0.0.0:3010 //端口
stats refresh 30s //统计页面自动刷新时间
stats uri /haproxy //页面url
stats auth admin:admin //用户名和密码
3、防火墙开启监控页面端口
# firewall-cmd --zone=public --add-port=3010/tcp --permanent
# firewall-cmd --reload
4、根据配置文件启动
# haproxy -f /etc/haproxy/haproxy.cfg
5、访问监控页面
http://haproxy安装机器ip:3010/haproxy
安装配置完成
更多推荐
所有评论(0)