MySQL高可用解决方案(4)数据库中间件之Atlas

TangLu MySQL 2021-10-11 4613 0

一、数据库中间件介绍

数据库中间件一般用于实现MySQL读写分离、从库负载均衡、IP过滤等功能。程序端通过访问中间件去对后端数据库进行请求,无需通过修改程序就可以进行读写分离。比较出名的MySQL中间件有360开源的Atlas、基于Proxy SQL开发的Cetus、DBLE、阿里巴巴开源的Mycat、MySQL官方的mysql-router以及第三方中间件maxscale等。这些中间件的原理基本是相同的,甚至大多数都是基于Proxy SQL演变而来


二、Atlas的安装部署

Atlas是由360基于官方mysql-proxy所优化改进的数据库中间件,相比官方的MySQL-Proxy,atlas效率要高出很多倍,而且配置也简单。Atlas运行在所有数据库节点的前面,用户通过Atlas来对数据库进行请求(有点像Nginx反向代理)。最主要的是配置文件全部都有中文注释。遗憾的是该软件已经很多年没更新了


1、atlas的代码存放于github(https://github.com/Qihoo360/Atlas),下载rpm包后直接安装即可

rpm -ivh Atlas-2.2.1.el6.x86_64.rpm


2、Atlas配置文件都有中文注释,只说说需要修改的地方

/usr/local/mysql-proxy/conf/test.cnf 
proxy-backend-addresses = 10.0.0.55:3306  #主库的地址,这里可以结合MHA使用VIP。写操作都会请求到这个节点。
proxy-read-only-backend-addresses =10.0.0.52:3306.10.0.0.53:3306@5 #多个从库用逗号隔开,@后面数字代表负载均衡的权重
pwds = root:6hG36gjkG,repl:geg363xsGE  #客户端连接atlas用到的数据库账户和密码,如果没有在这里配置,即便数据库有授权,也无法通过atlas来连接数据库。密码需用mysql-proxy/bin/encrypt加密,如encrypt 123456得到的值
event-threads = 8  #根据cpu核数设置
log-level = error
proxy-address = 0.0.0.0:3306  #atlas工作端口


3、Atlas的启动与停止

/usr/local/mysql-proxy/bin/mysql-proxyd test start|stop|restart|status  #test为配置文件的名字


三、Atlas的使用与管理

1、使用atlas配置文件中的管理账号连接服务

mysql -uuser -ppwd -p3306  -h127.0.0.1


2、登录上atlas后有一些管理命令如下图

atlas.png


3、通过这些命令可以进行查看、上下线节点、密码配置等操作,而且无需重启服务

select * from backends  #查看所有只读节点
set offline $从节点id  #暂时下线某个节点,用于维护
remove backends $从节点id  #删除从节点
add backends 10.0.0.54  #增加从节点


4、执行这些命令后需要save config一下,这样atlas的配置文件会被自动修改 

评论