Atlas和MHA实现读写分离_java

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 = 192.168.20.42:3306

proxy-read-only-backend-addresses =192.168.20.40:3306,192.168.20.39: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

admin-address = 0.0.0.0:2345

charset=utf8

启动atlas

/usr/local/mysql-proxy/bin/mysql-proxyd test start

ps -ef |grep proxy


3. Atlas功能测试

测试读操作:

mysql -umha -pmha  -h 192.168.20.40 -P 33060 

db03 [(none)]>select @@server_id;

测试写操作:

mysql> begin;select @@server_id;commit;


4. 生产用户要求

开发人员申请一个应用用户 app(  select  update  insert)  密码123456,要通过20网段登录

4.1  在主库中,创建用户

grant select ,update,insert on *.* to app@'192.168.20.%' identified by '123456';


4.2. 在atlas中添加生产用户

/usr/local/mysql-proxy/bin/encrypt  123456      ---->制作加密密码

vim /usr/local/mysql-proxy/conf/test.cnf

pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=,app:/iZxz+0GRoA=


/usr/local/mysql-proxy/bin/mysql-proxyd test restart

[root@db03 conf]# mysql -uapp -p123456  -h 192.168.20.40 -P 33060


5. Atlas基本管理

连接管理接口

mysql -uuser -ppwd -h127.0.0.1 -P2345

select * from help;

SELECT * FROM backends;

set offline 2;

set online 2;

REMOVE BACKEND 3;

ADD SLAVE 192.168.20.40:3306;

ADD PWD hahashen:123456;

save config;

---------------------end--------------------

推荐阅读:

1、Mysqlbinlog日志的清理与切换

2、mysqldump+binlog恢复被删除的数据

3、Mysql8.0 主从复制

4、Mysql8.0安装实战

Atlas和MHA实现读写分离_java_02