MySQL读写分离中间件Atlas
一、读写分离工具
1.set global read_only=1;
(这是之前遇到过的一种读写方法 但是用了只读MHA就用不了了)
2.Atlas
Atlas 类似于lb代理
二、Atlas简介
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。
它是在mysql-proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性,对其进行了优化。
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以上
三、Atlas主要功能
1.读写分离
2.从库负载均衡
3.IP过滤
4.自动分表
5.DBA可平滑上下线DB
6.自动摘除宕机的DB
四、Atlas相对于官方MySQL-Proxy的优势
1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
2.重写网络模型、线程模型
3.实现了真正意义上的连接池
4.优化了锁机制,性能提高数十倍
五、Atlas安装与配置
官方提供的Atlas有两种:
1)Atlas (普通) : Atlas-2.2.1.el6.x86_64.rpm
2)Atlas (分表) : Atlas-sharding_1.0.1-el6.x86_64.rpm
这里我们只需要下载普通的即可。
安装Atlas
# 1.db04直接拖入下载好的包 rpm下载
[root@db04 ~]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:Atlas-2.2.1-1 ################################# [100%]
不需要任何其他的操作 直接rpm
配置Atlas
# 1.进入Atlas工具目录
[root@db04 ~]# cd /usr/local/mysql-proxy/
[root@db04 /usr/local/mysql-proxy]# ll
drwxr-xr-x 2 root root 75 Dec 18 11:38 bin
drwxr-xr-x 2 root root 22 Dec 18 11:43 conf
drwxr-xr-x 3 root root 331 Dec 18 11:38 lib
drwxr-xr-x 2 root root 6 Dec 17 2014 log
# 2.生成密码 (配置文件里需要)
[root@db04 /usr/local/mysql-proxy]# cd bin
[root@db04 /usr/local/mysql-proxy/bin]# ll
-rwxr-xr-x 1 root root 9696 Dec 17 2014 encrypt
-rwxr-xr-x 1 root root 23564 Dec 17 2014 mysql-proxy
-rwxr-xr-x 1 root root 1552 Dec 17 2014 mysql-proxyd
-rw-r--r-- 1 root root 6 Dec 17 2014 VERSION
[root@db04 /usr/local/mysql-proxy/bin]# ./encrypt 123
3yb5jEku5h4=
这就是密码为123的配置密码 密码是什么就写什么 自动生成
# 3.修改配置
[root@db04 ~]# vim /usr/local/mysql-proxy/conf/test.cnf
#管理接口的用户名
admin-username = user
#管理接口的密码
admin-password = pwd
#Atlas监听的管理接口IP和端口
admin-address = 0.0.0.0:2345
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 10.0.0.52:3306 【我主库现在是52】
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 10.0.0.51:3306,10.0.0.53:3306,10.0.0.54:3306
#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!
pwds = rep:3yb5jEku5h4=,mha:O2jBXONX098=
#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。
daemon = true
#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。
keepalive = true
#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置
event-threads = 8 【一般根据cpu核心数】
#日志级别,分为message、warning、critical、error、debug五个级别
log-level = error
#日志存放的路径
log-path = /usr/local/mysql-proxy/log
#SQL日志的开关,可设置为OFF

本文介绍了MySQL读写分离中间件Atlas的详细信息,包括其功能、优势及安装配置步骤。Atlas是Qihoo 360开发的一款基于MySQL协议的数据中间层项目,支持读写分离、从库负载均衡、IP过滤等功能,并在内部大规模应用。通过一系列配置,可以实现主从切换、客户端IP过滤和密码管理。在生产环境中,可以通过Atlas平滑地管理和调整数据库集群。
最低0.47元/天 解锁文章
2302

被折叠的 条评论
为什么被折叠?



