mysql HA 负载均衡

DRBD+heartbeat + LVS + keepalived+ mysql

硬件:master *2 :安装drbd, heartbeat,mysql

slave*3 : 安装mysql

keep alived主机*2: 安装LVS, keepalived(real server就是slave)

应用主机*3

IP: 两台master 有一个HA VIP1

两台keepalived主机有一个lvs VIP2

写操作:

应用主机(AS)->VIP1->dev/drbd(两台master的drbd会实时同步)

mysql复制操作:

0) start slave

1) 3台slave会起一个I/O线程向vip1发送请求,请求master发送binlog;

2)master会起一个I/O线程发送binlog给三台slave;

3)1步骤中的I/O线程会把改变的语句保存到中继log -relay log;

4)slave会再开一个I/O读取进程,读取relay log。

读操作:

三台AS->VIP2->根据lVS算法(RR或WRR)->某一台slave

也就是读写是分离master与slave的

一些关键的配置:

drbd: /etc/drbd.conf, 需要配置drbd device名,例如/dev/drbd0, node1和node2的本地磁盘名,

node1和node2的IP: 7788

keepalived:配置vrrp, virtual serverIP配置DR模式,real servers添加slave的IP, 还有一个集成了监控slave I/O健康的脚本 check.slave.pl

LVS: ipvsadm -L 可以看到多个real server的负载状态, 路由算法RR用于各个real server性能差不多的情况,你一个我一个,WRR加权算法,性能强的做的多。

时间: 2024-07-30 01:14:37

mysql HA 负载均衡的相关文章

[转]Nginx+mysql+php-fpm负载均衡配置实例

转 : http://www.jbxue.com/article/7923.html 介绍一个nginx.mysql.php-fpm环境下配置负载均衡的例子,有需要的朋友,可以参考下. 系统环境如下:前端Nginx:192.168.93.137后端web1:192.168.0.11后端web2:192.168.0.12 1.前端nginx配置: 复制代码代码示例: http {      ……        client_max_body_size 300m;        client_bod

[HA]负载均衡:HAPROXY与KEEPALIVED强强组合

步骤一:修改系统控制配置文件,允许分配虚拟IP(VIP) /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 <pre style="word-wrap: normal; line-height: 18px;">sysctl -p 步骤二:安装HAPROXY和KEEPALIVED apt-get update && apt-get install keepalived haproxy -y 步骤三:配置KEEPALIVE

mysql数据库负载均衡高可用之主从、主主备份,实时同步

一:MySQL Replication 什么是MySQL Replication Replication可以实现将数据从一台数据库服务器(master)复制到一或多台数据库服务器(slave) 默认情况下属于异步复制,无需维持长连接 通过配置,可以复制所有的库或者几个库,甚至库中的一些表 是MySQL内建的,本身自带的 Replication的原理 简单的说就是master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据操作 DML:SQL操作语句,upd

haproxy的web服务负载均衡、动静分离、 MySQL服务负载均衡、状态监控

实验环境:基于centos6.6 haproxy-Server:172.16.249.98  hostname:node1 upsteram server1:172.16.249.100 hostname:node2 upstream server2:172.16.249.99  hostname:node3 web服务的负载均衡以及状态监控: 设置记录haproxy日志的文件位置: node1: #vim /etc/rsyslog.conf (1)启用UDP: # Provides UDP s

Nginx 实现MySQL的负载均衡

Nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持.所以不能代理mysql等实现负载均衡.但是lvs这个东西不熟悉,主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现,下面简单介绍一下实现方法: 1.下载module模块 下载地址 : https://nodeload.github.com/yaoweibin/nginx_tcp_proxy_module/zipball/master $ wget 'http://nginx.org/download

变形虫mysql的负载均衡 读写分离

变形虫概述 图片来自   http://docs.hexnova.com/amoeba/amoeba-products.html  文档上说也可以做mongdb的分布式. 应用: 具有负载均衡.高可用性.Query过滤.读写分离.可路由相关的query到目标数据库.可并发请求多台数据库合并结果. 在Amoeba上面你能够完成多数据源的高可用.负载均衡.数据切片的功能.目前在很多企业的生产线上面使用. 缺点: 目前还不支持事务 暂时不支持存储过程(近期会支持) 不适合从amoeba导数据的场景或者

借助LVS+Keepalived实现mysql的负载均衡

1 初识LVS:Linux Virtual Server 1.1 LVS是什么       LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,

rpc框架之HA/负载均衡构架设计

thrift.avro.grpc之类的rpc框架默认都没有提供负载均衡的实现,生产环境中如果server只有一台,显然不靠谱,于是有了下面的设计,这其实是前一阵跟北京一个朋友在qq群里交流的结果,分享一下: 主要思路: 1.rpc server端以多实例方式运行(多端口或多机部署均可),启动时每个实例向zk集群以临时节点方式注册(这样,遍历zk上/server下有多少个临时节点就知道有哪些server实例在线) 2.客户端自己实现一个连接池,连接池初始化时,从zk将在线的server实例信息同步

mysql数据库负载均衡

负载均衡集群是有一组相互独立的计算机系统构成,通过常规网络或专用网络进行链接,有路由器衔接在一起,各个节点相互协作,共同负载.均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器. 实现数据库原理: 实现数据库的负载均衡技术,首先有一个可以控制链接数据库的控制端.在这里,它截断了数据库和程序的直接链接,有所有的程序来访问这个中间层,然后由中间层来访问数据库.这样我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次链接到哪个数据库. 优点