龙空技术网

基于奇虎360中间件Atlas,实现MySql主从读写分离

迷神笔记 1984

前言:

而今朋友们对“mysqlatlas”大概比较关怀,小伙伴们都需要知道一些“mysqlatlas”的相关内容。那么小编同时在网络上汇集了一些关于“mysqlatlas””的相关知识,希望小伙伴们能喜欢,朋友们快快来了解一下吧!

图/文:迷神

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

项目地址:

今天我们要实现的就是 基于奇虎360中间件Atlas,实现MySql主从数据库读写分离。atlas是数据库的中间件,程序只需要连接atlas入口,无需读写单独指定,atlas决定在那个数据库进行读或者写操作,可以实现mysql的读写分离。

具体Mysql主从读写分离介绍原理,我就不详细说明了,网上一堆原理,大家可以自行查看,我们直接具体实施部署。

基础环境:

主库:192.168.132.121

从库:192.168.132.122

可以搞一个一主多从,也可以给atlas设置单个独立的机器,目前实验为了省麻烦把atlas配置在192.168.132.122上,先设置atlas对主端和从端都有数据库的读写权限。

主库执行:mysql> grant all privileges on *.* to 'atlas'@'192.168.132.122' identified by '1234567';mysql> flush privileges;从库执行:mysql> grant all privileges on *.* to 'atlas'@'192.168.132.122' identified by '1234567'; mysql> flush privileges;
安装atlas

Atlas下载地址

[root@slave ~]# cd /usr/local/src/[root@slave src]# yum install epel-release -y[root@slave src]# yum install openssl-devel autoconf gcc glib2 glib2-devel libevent-devel flex-devel flex jemalloc jemalloc-devel lua-devel -y[root@slave src]# wget [root@slave src]# rpm -ivh Atlas-sharding_1.0.1-el6.x86_64.rpm [root@slave src]# cd /usr/local/mysql-proxy/[root@slave mysql-proxy]# ./bin/mysql-proxy --version
atlas配置

先密码加密:

[root@slave mysql-proxy]# /usr/local/mysql-proxy/bin/encrypt  '1234567'[root@slave mysql-proxy]# tj+W8xntBW8=  #  密文

具体配置如下:

启动atlas

[root@slave mysql-proxy]# /usr/local/mysql-proxy/bin/mysql-proxyd atlas start

然后我们测试使用了,具体使用和原生的Mysql一样的,只不过,我们这次配置文件是,使用了3316端口对外使用:

mysql -uatlas -p1234567 -h 192.168.132.122 -P3316   -e 'select * from test;'其他执行insert是一样的,和普通的执行插入一样,具体自己测试啦。

atlas性能还是不错,当然相比直连的性能还是有所损失的,官方也给出了测试结果。官方同时测试了sysbench不同并发线程下,完成每个SQL操作平均时间(单位:ms,时间越短,系统性能越好)。具体测试数据 对比如下所示:

测试

剩下的基本上大家自行尝试读写分离的验证哈。有问题欢迎给我留言,觉得不错,记得分享,关注迷神哦,后续将会分享更多精彩内容。

标签: #mysqlatlas