1.什么是mysql-proxy?
mysql-proxy就是一个中间代理层,比如说原来用户是直接向mysql数据库发送请求,有了mysql-proxy之后,用户只需要向mysql-proxy发送请求,然后mysql-proxy作为代理再将请求转发给mysql数据库
用户可以直接给mysql数据库发送请求,为什么还需要mysql-proxy?请求中转——生产环境中单台数据库一般无法满足需求,都是多台数据库;如果没有mysql-proxy,都是程序员自己写代码来控制一个请求是访问哪个数据库。有了mysql-proxy之后,请求只要发给mysql-proxy就ok了,剩下的交给mysql-proxy就好了,具体的转发规则交给mysql-proxy来实现。
请求分析与修改——mysql-proxy允许用户指定Lua脚本对请求进行拦截,对请求进行分析与修改,它还允许用户指定Lua脚本对服务器的返回结果进行修改,加入一些结果集或者去除一些结果集均可
2.使用场景
大部分的mysql架构一般都是:主从复制同步数据,读写分离提升并发
(1)下图就是典型的mysql-proxy中转结构,mysql-proxy收到请求之后,按照一定的转发规则将请求转发给下游的mysql服务器。
(2)我了解的业务mysql的架构如下,web服务的写请求发送给mysql主库,web服务的读请求发送给mysql的从库。我们需要访问线上数据库的时候,一般只申请一台机器有权限访问线上从库,这时候我们是在这台机器上搭建一个mysql-proxy代理,其他机器访问这个代理就ok了。
3.使用方法
3.1mysql-proxy安装
(1)