位置: 编程技术 - 正文

Keepalived+HAProxy实现MySQL高可用负载均衡的配置

编辑:rootadmin

推荐整理分享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脚本

注意配置选项:

Keepalived+HAProxy实现MySQL高可用负载均衡的配置

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数据表插

本文链接地址:https://www.jiuchutong.com/biancheng/319753.html 转载请保留说明!

上一篇:MySQL的主从复制步骤详解及常见错误解决方法(MySQL的主从复制基于什么实现的?)

下一篇:MySQL Cluster集群的初级部署教程(mysql集群配置)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络