我是靠谱客的博主 尊敬毛衣,最近开发中收集的这篇文章主要介绍rabbitmq+keepalived+haproxy的部署rabbitmq+keepalived+haproxy的部署,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
rabbitmq+keepalived+haproxy的部署
生产者通过通道发送消息,经过keepalived的vip访问到haproxy负载均衡,在通过haproxy到达消息队列rabbitmq,这里创建了三个rabbitmq,最后在供消费者消费.
环境部署
搭建三个节点,创建三个rabbitmq节点,两台高可用,两台负载均衡.
一 部署rabbitmq
作域名解析,修改主机名,三台server都要部署
192.168.122.115 rabbitmq02
192.168.122.166 rabbitmq01
192.168.122.76 rabbitmq03
[root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq01
[root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq02
[root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq03
[root@rabbitmq01 ~]# yum -y install erlang
[root@rabbitmq01 ~]# yum -y install socat
[root@rabbitmq01 ~]# yum -y install rabbitmq-server
[root@rabbitmq1 ~]# systemctl start rabbitmq-server.service
[root@rabbitmq1 ~]# systemctl stop rabbitmq-server.service
[root@rabbitmq1 ~]# systemctl enable rabbitmq-server.service
[root@rabbitmq1 ~]# systemctl restart rabbitmq-server.service
[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management #启动监控管理
[root@rabbitmq1 ~]# ss -auntpl |grep rabbitmq #查看端口有没有启动
#进入浏览器访问 http://192.168.122.166:15672
访问到这个页面就成功,以上图片是加入节点的
二 搭建集群cluster
在rabbitmq01中加入其他的两个节点
[root@rabbitmq2 ~]# rabbitmqctl stop_app
[root@rabbitmq2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1 #加入集群
[root@rabbitmq2 ~]# rabbitmqctl start_app
[root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq2 ~]# systemctl restart rabbitmq-server.service
[root@rabbitmq1 rabbitmq]# rabbitmqctl cluster_status #查看集群的状态
Cluster status of node rabbit@rabbitmq1
[{nodes,[{disc,[rabbit@rabbitmq1]},{ram,[rabbit@rabbitmq3,rabbit@rabbitmq2]}]},
{running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},
{cluster_name,<<"rabbit_cluster">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq3,[]},{rabbit@rabbitmq2,[]},{rabbit@rabbitmq1,[]}]}]
再次进入浏览器访问,若看到插入的三个节点(以上插入的图片),就证明集群搭建成功
三 部署haproxy
部署两台haproxy和keepalived,分别为主从,一下的操作两台都需要做
[root@hamaster ~]# yum -y install haproxy
[root@hamaster ~]# vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user nobody
group nobody
daemon
defaults
mode http
log global
option dontlognull
retries 3
maxconn 3000
contimeout 50000
clitimeout 50000
srvtimeout 50000
listen stats
bind *:9999
stats enable
stats hide-version
stats uri /haproxy
stats realm Haproxy stats
stats auth admin:admin
stats admin if TRUE
listen rabbitmq #修改为rabbitmq,监听的内容
bind *:15672 #端口修改为rabbitmq的端口
mode tcp
balance roundrobin
server rabbitmq1 192.168.122.166:15672 check #三台的rabbitmq的ip
server rabbitmq2 192.168.122.115:15672 check
server rabbitmq3 192.168.122.76:15672 check
[root@hamaster ~]# systemctl restart haproxy.service #重新启动服务
[root@hamaster ~]# systemctl status haproxy.service #查看一下状态
四 部署keepalived
[root@hamaster ~]# yum -y install keepalived
[root@hamaster ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id directory1 #主和从的id不同
}
vrrp_script check_run { #需要执行的脚本,与下边调用的名称应该保持一致,这里是check_run
script "/etc/ha.sh" #脚本的位置,这里执行的脚本注意要授权
interval 5
}
vrrp_instance VI_1 {
state MASTER #从的记住改成BACKUP
interface eth0 #查看自己的网卡名称,注意修改
nopreempt
virtual_router_id 80 #rouit-id 保持一直
priority 100 #从的优先级低于主的优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #vip
192.168.122.20/24
}
track_script { #调用执行上边的脚本
check_run #与上边的函数名称保持一致
}
}
#判断haproxy的脚本
#!/bin/bash
systemctl status haproxy
if [ $? -eq 0 ];then
echo "successful"
else
systemctl stop keepalived
fi
! Configuration File for keepalived
global_defs {
router_id directory1
}
vrrp_script check_run {
script "/etc/ha.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.122.20/24
}
track_script {
check_run
}
}
#插入两个vip的情况,两台server互为主从
vrrp_instance VI_2 {
state BACKUP
interface eth0
nopreempt
virtual_router_id 81
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 111
}
virtual_ipaddress {
192.168.122.21/24
}
}
访问vip,会得到rabbitmq的节点信息
最后
以上就是尊敬毛衣为你收集整理的rabbitmq+keepalived+haproxy的部署rabbitmq+keepalived+haproxy的部署的全部内容,希望文章能够帮你解决rabbitmq+keepalived+haproxy的部署rabbitmq+keepalived+haproxy的部署所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复