mysql-proxy 读写分离
mysql-proxy 读写分离
主从复制
MySQL Replication可以将master的数据复制分布到多个slave上,然后利用slave来分担master的读压力。

读写分离
MySQL-Proxy是处在MySQL数据库客户端和服务端之间的程序,它支持嵌入Lua。这个代理可以用来分析、监控和变换通信数据,支持非常广泛的使用场景:
- 负载均衡和故障转移处理;
- 查询分析和日志;
- SQL宏;
- query rewriting;
- 执行shell命令;
- 读写分离(master处理事务性查询;slave处理select查询);
mysql-proxy 命令的选项设置:
--admin-address=host:port # mysql-proxy管理端口(缺省端口是4041)
--proxy-address=host:port # mysql-proxy 监听端口(缺省端口是4040)
--proxy-backend-addresses=host:port # 远程MySQL服务器地址和端口,可以设置多个
--proxy-read-only-backend-addresses=host:port # 远程只读Slave服务器的地址和端口
--proxy-skip-profiling # 关闭查询分析功能,默认是打开的
--proxy-lua-script=file # 指定一个Lua脚本来控制mysql-proxy的运行和设置
--daemon # 以守护进程方式运行
--pid-file=file # pid文件路径
MySQL Proxy作为一个连接池,负责将client的连接请求转发给后台的数据库。通过Lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载均衡。
对于client来说,MySQL Proxy是完全透明的,client只需要连接到MySQL Proxy的监听端口即可。

通过下面的lua脚本实现读写分离:
-- mysql-proxy/scripts/rw-splitting.lua
-- connection pool
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = , -- 默认为4
max_idle_connections = , -- 默认为8
is_debug = false
}
end
参考文档:
http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting/
mysql-proxy 读写分离的更多相关文章
- Linux MySQL Proxy 读写分离
导读 因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达 MySQL-Proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接 ...
- Amoeba搞定mysql主从读写分离
前言:一直想找一个工具,能很好的实现mysql主从的读写分离架构,曾经试用过mysql-proxy发现lua用起来很不爽,尤其是不懂lua脚本,突然发现了Amoeba这个项目,试用了下,感觉还不错,写 ...
- Amoeba实现mysql主从读写分离
Amoeba实现mysql主从读写分离 这段在网上看了下关于amoeba的文章,总体感觉好像要比mysql-proxy好的多,也参考了不少的资料,此文章可能与其他文章作者会有雷同的地方,请谅解,但是此 ...
- python实现mysql的读写分离及负载均衡
Oracle数据库有其公司开发的配套rac来实现负载均衡,目前已知的最大节点数能到128个,但是其带来的维护成本无疑是很高的,并且rac的稳定性也并不是特别理想,尤其是节点很多的时候. 但是,相对my ...
- MySQL ProxySQL读写分离实践
目的 在上一篇文章MySQL ProxySQL读写分离使用初探里初步介绍了ProxySQL的使用,本文继续介绍它的一些特点和DBProxy的性能差异.深入一些去了解ProxySQL,通过测试来说明Pr ...
- MySQL Router实现MySQL的读写分离
1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...
- 搭建基于MySQL的读写分离工具Amoeba
搭建基于MySQL的读写分离工具Amoeba: Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的: 实验环境(虚拟机): 主机 角色 10.10.10.2 ...
- MySQL的读写分离的几种选择
MySQL的读写分离的几种选择 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下: http://heylinux.com/archives/1004. ...
- MySQL/MariaDB读写分离配置
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...
- 使用mysql-proxy实现mysql的读写分离
前言: MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力.使用mysql-proxy实现mysql的读写分离,mysq ...
随机推荐
- Centos 安装配置gerrit
关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- having过滤语句
having 对部分分组来进行过滤 跟在group by 后面 在having语句中不能包含未分组的列名, select FAge,COUNT(*) from T_Employee where FS ...
- Linux 系统中的MySQL数据库默认区分大小写
今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...
- 用ajax查询天气
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <script src ...
- [LeetCode] Permutations 全排列
Given a collection of numbers, return all possible permutations. For example,[1,2,3] have the follow ...
- SASS 入门笔记
参考资料: SASS 用法指南 SASS 语法 Sass Basics SASS_REFERENCE sass 有两种后缀名文件:一种后缀名为 sass,不使用大括号和分号:另一种就是我们这里使用的 ...
- 从随机过程到马尔科夫链蒙特卡洛方法(MCMC)
从随机过程到马尔科夫链蒙特卡洛方法 1. Introduction 第一次接触到 Markov Chain Monte Carlo (MCMC) 是在 theano 的 deep learning t ...
- NCspider项目总结
下午就要答辩了,想把项目经历再总结一下. 项目分三个阶段. 第一阶段,是信息搜集整理阶段 要想法设法从各个门户网站上抓取到新闻和对应的评论数据.首先要分析网站结构. 1. 从哪里找到网站每日发布的所有 ...
- autofac与unity注册类型的几个小区别
//以下两个注册,在Unity中是默认的 //注册控制器,否则不管接口注入还是属性注入都获取不到服务实例 Builder.RegisterControllers(typeof(MvcApplicati ...