mysql读写分离(atlas)的架构搭建

mysql读写分离(atlas)的架构搭建

一:环境

主服务器
IP:192.168.1.205
系统:Ubuntu 16.04
MySQL:5.7.20

从服务器
IP:192.168.1.197
系统:Ubuntu 16.04
MySQL:5.7.20

atlas服务器
IP:192.168.1.206
系统:Ubuntu 16.04
MySQL:5.7.20

二:架构图

这里写图片描述

三:数据库主从复制搭建

参见博文Ubuntu下MySql5.7主从复制搭建

四:atlas安装部署

4.1安装atlas

ubuntu系统,下载deb包,并安装
https://github.com/Qihoo360/Atlas/releases/download/2.2/Atlas-2.2-debian7.0-x86_64.deb
安装命令:

dpkg -i ./Atlas-2.2-debian7.0-x86_64.deb

其他系统的安装请参见:
https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E5%AE%89%E8%A3%85

4.2配置atlas

进入/usr/local/mysql-proxy/conf目录,编辑test.conf配置文件

配置文件中的各项配置均有详细的文字说明

4.3运行atlas

进入/usr/local/mysql-proxy/bin目录,执行命令:

sudo ./mysql-proxyd test start  # 启动Atlas。

sudo ./mysql-proxyd test restart  # 重启Atlas。

sudo ./mysql-proxyd test stop  # 停止Atlas。

如果提示atlas启动失败,请查看/usr/local/mysql-proxy/log目录日志文件中的详细错误内容。
如果错误日志提示libmysqlclient.so.18缺失,请下载 libmysqlclient18_5.6.25-0ubuntu1_amd64.deb安装,下载地址:
https://launchpad.net/ubuntu/xenial/amd64/libmysqlclient18/5.6.25-0ubuntu1

五:atlas读写分离测试

请在配置文件中加入配置项sql-log

#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,
#REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF

sql-log = REALTIME

重启atlas,连接数据库,执行查询、增删改操作:

 mysql -h 127.0.0.1 -uusername -ppassword -P1234
mysql>use mydatabase;
mysql>select * from mytable;
...
mysql> update mytable set status=1;
...

进入/usr/local/mysql-proxy/log目录,查看sql_test.log日志文件的内容:
select * from mytable命令在从服务器上执行;update mytable set status=1命令在主服务器上执行。

六:atlas简介

6.1 简介

Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。同时,有超过50家公司在生产环境中部署了Atlas,超过800人已加入了我们的开发者交流群,并且这些数字还在不断增加。

主要功能:

1.读写分离
2.从库负载均衡
3.IP过滤
4.自动分表
5.DBA可平滑上下线DB
6.自动摘除宕机的DB

6.2 atlas相对于官方MySQL-Proxy的优势

1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
2.重写网络模型、线程模型
3.实现了真正意义上的连接池
4.优化了锁机制,性能提高数十倍

6.3 atlas自动分表

atlas存在两个版本,2.2版本支持本库内的水平分表;另一版本支持分布式数据库的水平分表。具体说明,请参见git文档。

附:atlas:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md

猜你喜欢

转载自blog.csdn.net/apple9005/article/details/80792434