天天看点

MySQL中间件Atlas

MySQL中间件Atlas

atlas简介

Mysql 的 proxy 中间件有比较多的工具,例如,mysql-proxy(官方提供), atlas , cobar, mycat, tddl, tinnydbrouter等等。

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

同时,有超过50家公司在生产环境中部署了Atlas,超过800人已加入了我们的开发者交流群,并且这些数字还在不断增加。而且安装方便。配置的注释写的蛮详细的,都是中文。

Atlas官方链接:​​https://link.zhihu.com/?target=https%3A//github.com/Qihoo360/Atlas/blob/master/README_ZH.md​​

​Atlas下载链接:https://link.zhihu.com/?target=https%3A//github.com/Qihoo360/Atlas/releases

主要功能

Atlas主要功能(代理)
 1.读写分离
 2.从库负载均衡
 3.IP过滤
 4.自动分表
 5.DBA可平滑上下线DB(不影响用户的体验,把你的数据库下线)
 6.自动摘除宕机的DB
 
Atlas相对于官方MySQL-Proxy的优势
 1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
 2.重写网络模型、线程模型
 3.实现了真正意义上的连接池
 4.优化了锁机制,性能提高数十倍      

使用场景

Atlas是一个位于前端应用与后端MySQL数据库之间的中间件,在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。

Atlas使得应用程序员无需再关心读写分离、分表等与MySQL相关的细节,可以专注于编写业务逻辑,同时使得DBA的运维工作对前端应用透明,上下线DB前端应用无感知。

企业读写分离及分库分表其他方案了解

Mysql-proxy(oracle)

Mysql-router(oracle)

Atlas (Qihoo 360)

Atlas-sharding (Qihoo 360)

Cobar(是阿里巴巴(B2B)部门开发)

Mycat(基于阿里开源的Cobar产品而研发)

TDDL Smart Client的方式(淘宝)

Oceanus(58同城数据库中间件)

OneProxy(原支付宝首席架构师楼方鑫开发 )

vitess(谷歌开发的数据库中间件)

Heisenberg(百度)

TSharding(蘑菇街白辉)

Xx-dbproxy(金山的Kingshard、当当网的sharding-jdbc )
amoeba      

安装Atlas

wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm

rpm -ivh Atlas-2.2.1.el6.x86_64.rpm      

配置

启动服务

#1、启动,配置文件名为test.conf对应此处的test
/usr/local/mysql-proxy/bin/mysql-proxyd test start