采用Atlas+Keepalived实现MySQL读写分离、读负载均衡

一、简介

Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。

主要功能:

二、Atlas相对于官方MySQL-Proxy的优势

三、Atlas详细说明

四、Atlas的需求及Bug反馈方式

如果用户在实际的应用场景中对Atlas有新的功能需求,或者在使用Atlas的过程中发现了bug,欢迎用户发邮件至zhuchao[AT]360.cn,与我们取得联系,我们将及时回复。另外有热心网友建立了QQ群326544838,开发者也已经加入,方便讨论。

五、名字来源

Atlas:希腊神话中双肩撑天的巨人,普罗米修斯的兄弟,最高大强壮的神之一,因反抗宙斯失败而被罚顶天。我们期望这个系统能够脚踏后端DB,为前端应用撑起一片天。

六、安装

Atlas的安装非常简单,从https://github.com/Qihoo360/Atlas/releases地址下载相应的rpm包直接安装即可,可能有一些依赖关系,yum都能解决的,就不多讲了!

七、配置文件:

配置文件位置/usr/local/mysql-proxy/config下面,就我的内网应用而言,我创建新的配置文件如下:

八、启动关闭重启:

九、负载读写分离测试:

OLTP基准测试:
OLTP基准测试模拟了一个简单的的事务处理系统的工作负载。下面的例子使用的是一张百万行记录的表,第一步先生成这张表:

接下来可以运行测试,这个例子采用了16个并发线程,只读模拟测试:

从时间上来看比之前haproxy测试要略慢,还是haproxy的性能更靠谱,但是haproxy需要在应用层实现读写分离,就是代码了

tpcc压测:

tpcc导入表时出错了,提示变量foreign_key_checks不能设置为NULL值,暂且不管它,继续测试:

经过一段时间的使用,发现atlas目前是比较稳定的,但是性能不作过多评价!有时面面俱到真是难!多一层代理,性能肯定会下降,如果程序端能实现读写分离,直连集群或主备,那样的性能应该是最好的。

[参考资料]采用Atlas+Keepalived实现MySQL读写分离、读负载均衡 - http://sofar.blog.51cto.com/353572/1601552/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值