proxy代理加MySQL主从实现读写分离

MySQL Proxy(代理) 服务概述 

MySQL Proxy 实现读写分离 

MySQL Proxy+mysql主从实现读写分离 

二:实验环境: 

关闭防火墙

mysql-proxy服务端: linuxidc62.cn IP192.168.1.62

mysql服务器(主,负责写)服务端:linuxidc63.cn IP192.168.1.63

mysql服务器(从,负责读)客户端:linuxidc64.cn IP192.168.1.64

端口: mysql-proxy 默认端口:4040

 

三:实验概述

主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署实施的。

工作原理:

 

wKioL1kBsKWzMbHKAALLWTgSdwQ747.png

wKiom1kBsKXDbWVZAAA8veSR6hk928.png

 

1:MySQL Proxy概述

MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。

MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。

MySQL Proxy更强大的一项功能是实现读写分离,基本原理是让主数据库处理事务性查询,让从库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从库。

Lua概述:

Lua 是一个小巧的脚本语言。Lua的速度是最快的。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。

 

2:读写分离的好处
1增加冗余

2)增加了机器的处理能力

3对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。

3:读写分离提高性能之原因

1物理服务器增加,负荷增加
2主从只负责各自的写和读,极大程度的缓解X锁和S锁争用
3从库可配置myisam引擎,提升查询性能以及节约系统开销
4从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的
5读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6e096abcb591d8639b8b95eaa984978d.html