DB proxy, mysql proxy
db proxy
在大型互联网站的数据库部署中,部署最多的数据库为MySQL。随着MySQL中Innodb存储引擎对事物的支持,MySQL在互联网公司部署中,应用量越来越多。典型应用MySQL的公司有Google、Baidu、Taobao等大型互联网公司。MySQL的优势在于其高扩展性和价格优势等。实际上,MySQL可以免费应用于企业级的部署中。
在MySQL复制方式部署中,有两种部署方式:同步复制和异步复制。同步复制采用NDB 存储引擎,异步复制需要使用mysql-proxy结合master-slave实现。
异步复制主要为了解决读写分离的问题。因为用户对网站的访问有读操作多,写操作少的特点。甚至像taobao.com这样的网站读写比例高达10:1,所以采用MySQL-Proxy结合主从异步复制实现读写分离是非常重要的增快访问速度的方法。这样如果有更高的用户访问需求,通过增加slave机器,不会对现有系统提供的服务产生影响而实现很好的、很灵活的业务扩展。
1.1 mysql-proxy
mysql-proxy是一个MySQL的代理服务器,用户的请求先发向mysql-proxy,然后mysql-proxy对用户的数据包进行分析,从下一层的mysql 数据库中选择一台数据库,将用户的请求包交给mysql处理。
首先MySQL Proxy 以服务器的身份接受客户端的请求,根据相应配置对这些请求进行分析处理,然后以客户端的身份转发给相应的后端数据库服务器,再接受服务器的信息,然后返回给客户端。所以MySQL Proxy需要同时实现客户端和服务器的协议。由于要对客户端发送过来的SQL语句进行分析,还需要包含一个SQL解析器。MySQL Proxy通过使用lua脚本,来实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。所以部署MySQL-Proxy需要安装运行Lua语言的环境。典型的MySQL-Proxy应用为实现读写分离,如图6-3-1所示。

图6-3-1
1.2 MySQL主从复制(Master-Slave Replication)
MySQL主从复制(Master-Slave Replication)是通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到Slave MySQL的数据库中。这样实现了数据库的复制功能。原理如图6-3-2所示:

图6-3-2
MySQL主从复制的作用如下:
(1) 可以作为一种备份机制。
(2) 可以用来做读写分离。
1.3 MySQL主从复制结合MySQL Proxy实现读写分离
通过使用MySQL-Proxy来作为代理服务器,配置MySQL Proxy,将所有的写操作,分流到master MySQL上,所有的读操作分流到slave MySQLs。
这样就实现了读写分离。如果有新的访问需求,只需添加slave MySQL机器来解决问题。所以这样的结构扩展能力非常好。如图6-3-3所示。

图6-3-3
DB proxy, mysql proxy的更多相关文章
- Mysql读写分离方案-MySQL Proxy环境部署记录
Mysql的读写分离可以使用MySQL Proxy和Amoeba实现,其实也可以使用MySQL-MMM实现读写分离的自动切换.MySQL Proxy有一项强大功能是实现"读写分离" ...
- (转)MySQL Proxy使用
转自: http://www.cnblogs.com/itech/archive/2011/09/22/2185365.html http://koda.iteye.com/blog/788862 h ...
- MySQL Proxy使用
使用MySQL将读写请求转接到主从Server. 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用. 解压缩的目录为: $mysql-proxy_instal ...
- MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)
Mysql Proxy Lua读写分离设置 一.读写分离说明 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELE ...
- MySQL Proxy
最近翻看了mysql proxy的资料,特发上来. mysql proxy的推荐使用方式是采用配置文件来完成,当前在命令行的执行如下:mysql-proxy -P 192.168.1.101:3306 ...
- [转载] 使用MySQL Proxy解决MySQL主从同步延迟
原文地址:http://koda.iteye.com/blog/682547 MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在 ...
- 使用MySQL Proxy解决MySQL主从同步延迟
MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制 是依赖Slave主动向Master发请求来获取数据的, ...
- WindowsServer2008配置MySql Proxy
WIndowsServer2008配置MySql Proxy: 1.MySql Proxy的下载地址:http://dev.mysql.com/downloads/mysql-proxy/,选择Win ...
- MysqL读写分离的实现-Mysql proxy中间件的使用
为什么要架设读写分离,这里不做多余的说明,想了解具体原理,请百度或者参考其他帖子.在这里只做大概的配置说明,测试中使用三台服务器 192.168.136.142 主服务器 192.168.136. ...
随机推荐
- MES实施会有哪些情况?为你介绍两种常见的类型
MES项目实施顾问是一份极具挑战的工作,需具备大量的专业知识,以及丰富的实施经验.今天,小编为大家介绍最常见的两种MES实施顾问类型,希望对大家有所启发. 保姆型实施顾问 是指以实施顾问为主导,只要是 ...
- MySQL Percona Toolkit--pt-osc学习
工作流程 1.检查更改表是否有主键或唯一索引,是否有触发器 2.检查修改表的表结构,创建一个临时表,在新表上执行ALTER TABLE语句 3.在源表上创建三个触发器分别对于INSERT UPDATE ...
- 一、Linux_文件操作
1.复制文件到当前目录: # 复制文件到当前目录下, ./表示当前目录 $ cp /home/book/poems.tar.gz ./ # 复制并改名,并存放在当前目录下 (cp源文件名 新文件名) ...
- while 格式化输出 运算符 字符编码
流程控制之while循环 条件循环:while,语法如下 while 条件: # 循环体 # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件... # 如果条件为假,那么循环体不执行 ...
- etcd数据备份和恢复--转发
对于etcd api v3数据备份与恢复方法 # export ETCDCTL_API=3 # etcdctl --endpoints localhost:2379 snapshot save sna ...
- Python入门篇-数据结构树(tree)的遍历
Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...
- 基于Asp.net core + EF + Sqlite 5分钟快速上手一个小项目
虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了.好了不多废话了,直接开始!! 1.建立一个名为test的Asp.net core web应用程序 这一 ...
- 项目Alpha冲刺 7
作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 介绍第7天冲刺的项目进展.问题困难和心得体会 1.团队信息 队名:火鸡堂 队 ...
- 网络基础知识(http请求)
http请求的过程 域名解析----TCP连接 ----发送请求-----响应请求----获取html代码----浏览器渲染 TCP是主机对主机层的控制传输协议,提供可靠的连接服务 TCP的三次握手 ...
- Mybatis框架-Delete节点元素的使用
这个就也比较简单,需求:将我们最新插入的那条数据删除掉,从用户表中. UserMapper.xml UserMapper.java 编写测试方法: @Test public void testDele ...