Atlas 读写分离

1. Atlas

 Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。
它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。
360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。
下载地址
https://github.com/Qihoo360/Atlas/releases
注意:
1、Atlas只能安装运行在64位的系统上
2、Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。
3、后端mysql版本应大于5.1,建议使用Mysql 5.6以上

2.安装配置

yum install -y Atlas*
cd /usr/local/mysql-proxy/conf
mv test.cnf test.cnf.bak
 vi test.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 10.0.0.55:3306      #: 写的节点(主库)
proxy-read-only-backend-addresses = 10.0.0.51:3306,10.0.0.53:3306      #: 读的节点(从库)
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=      #: 连接数据库的用户和密码
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060   #: 监听数据的IP和端口(可以单独指定外网网卡或内网网卡)
admin-address = 0.0.0.0:2345      #: 监听登录管理atlas 的IP和端口
charset=utf8      #字符集
启动atlas
/usr/local/mysql-proxy/bin/mysql-proxyd test start
ps -ef |grep proxy

3. Atlas基本管理

3.1 连接管理接口

mysql -uuser -ppwd -h127.0.0.1 -P2345

3.2 打印帮助:

mysql> select * from help;
SELECT * FROM backends;     #: 查询后端所有节点信息
REMOVE BACKEND 3;      #: 动态删除编号3的节点
ADD SLAVE 10.0.0.53:3306;      #: 动态添加节点
SAVE CONFIG;      #保存动态配置的参数到配置文件

4. 自动分表

使用Atlas的分表功能时,首先需要在配置文件test.cnf设置tables参数。
tables参数设置格式:数据库名.表名.分表字段.子表数量,
比如:
你的数据库名叫school,表名叫stu,分表字段叫id,总共分为2张表,那么就写为school.stu.id.2,如果还有其他的分表,以逗号分隔即可。

5. 关于读写分离建议

MySQL-Router    ---> MySQL官方
ProxySQL         --->Percona
Maxscale         ---> MariaDB

你可能感兴趣的:(Atlas 读写分离)