位置: 编程技术 - 正文
推荐整理分享Keepalived+HAProxy实现MySQL高可用负载均衡的配置,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
Keepalived
由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+haproxy来实现.
keepalived主要功能是实现真实机器的故障隔离及负载均衡器间的失败切换.可在第3,4,5层交换.它通过VRRPv2(Virtual Router Redundancy Protocol) stack实现的.
Layer3:Keepalived会定期向服务器群中的服务器.发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。
Layer4:主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是,如果Keepalived检测到端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer5:在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。
Software Design
keepalived启动后会有单个进程
父进程:内存管理,子进程管理等等
子进程:VRRP子进程
子进程:Healthchecking 子进程实例
2台mysqlcluster .1.6. master .1.6. backup
vip .1.6.
目的访问.1.6. 端口 分别轮询通过haproxy转发到.1.6. 和.1.6.
mysqlcluster搭建参照之前博客,这里在2台机上安装keepalived
VRRPD配置包括三个类:
VRRP同步组(synchroization group) VRRP实例(VRRP Instance) VRRP脚本这里使用了 VRRP实例, VRRP脚本
注意配置选项:
stat:指定instance(Initial)的初始状态,就是说在配置好后,这台服务器的初始状态就是这里指定的,但这里指定的不算,还是得要通过竞选通过优先级来确定,里如果这里设置为master,但如若他的优先级不及另外一台,那么这台在发送通告时,会发送自己的优先级,另外一台发现优先级不如自己的高,那么他会就回抢占为master
interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的 priority :设置本节点的优先级,优先级高的为master debug:debug级别 nopreempt:设置为不抢占然后在实例(vrrp_instance)里面引用,有点类似脚本里面的函数引用一样:先定义,后引用函数名
注意:VRRP脚本(vrrp_script)和VRRP实例(vrrp_instance)属于同一个级别
同理配置.1.6.
HAProxy
下面再介绍下haproxy
HAProxy是一款基于TCP(第四层)和HTTP(第七层)应用的代理软件,它也可作为负载均衡器.可以支持数以万计的并发连接.同时可以保护服务器不暴露到网络上,通过端口映射.它还自带监控服务器状态的页面.
安装haproxy
haproxy需要对每一个mysqlcluster服务器进行健康检查
1.在2台主机分别配置haproxy.cfg
2.安装xinetd
3.在每个节点添加xinetd服务脚本和mysqlchk端口号
4.编写mysqlchk监控服务脚本
测试
2个节点开启keepalived(主节点会获得vip,自动拉起haproxy),xinetd
测试:
通过vip.1.6. 访问cluster数据库(注意账户dave权限需要加3个ip.1.6.,.1.6.,.1.6.)
手动分别使keepalive,haproxy,数据库挂掉.vip.1.6.会自动漂到.1.6.从上,并不影响vip的访问
通过vip,haproxy查看各节点状态
MySQL Cluster集群的初级部署教程 MysqlCluster概述MySqlCluster最显著的优点就是高可用性,高实时性,高冗余,扩展性强。它允许在无共享的系统中部署"内存中"数据库的Cluster.通过无共享体系结
MySQL在右表数据不唯一的情况下使用left join的方法 1.leftjoin基本用法mysqlleftjoin语句格式ALEFTJOINBON条件表达式leftjoin是以A表为基础,A表即左表,B表即右表。左表(A)的记录会全部显示,而右表(B)只会显示符
MySQL中insert语句的使用与优化教程 MySQL表中使用INSERTINTOSQL语句来插入数据。你可以通过mysql命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。语法以下为向MySQL数据表插
标签: Keepalived+HAProxy实现MySQL高可用负载均衡的配置
本文链接地址:https://www.jiuchutong.com/biancheng/319753.html 转载请保留说明!上一篇:MySQL的主从复制步骤详解及常见错误解决方法(MySQL的主从复制基于什么实现的?)
下一篇:MySQL Cluster集群的初级部署教程(mysql集群配置)
友情链接: 武汉网站建设