使用mysql 中间件 Atlas 实现数据库读写分离

时间:2022-01-18 01:30:04

1、首先第一步,肯定是下载,根据情况选择要下载的
地址在这里 https://github.com/Qihoo360/Atlas/releases

我下载的是Atlas-2.2-debian7.0-x86_64.deb

安装

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

安装好之后在 /usr/local/mysql-proxy 目录下,其实这货是基于mysql-proxy开发的,添加了一些特性,安装的时候会有一些坑,启动不了,缺少lib,然后我有直接下载了官方的mysql-proxy,这里面包含了这货缺少的lib,可以直接复制到它的lib下面,或者 /usr/lib 下面

2、创建一个配置文件

admin-username = user
admin-password = pwd
proxy-backend-addresses = 120.22.66.50:3307 # 主库
proxy-read-only-backend-addresses = 120.22.66.51:3308 # 从库
pwds = root:vI/zVThcXNaqw== ## 这个怎么来的,你可以看我下面提供的链接,有说明
daemon = false # 后台运行,先用false,如果启动成功,程序会卡在哪里,这个时候你就知道成功,不然失败了,你都不知道,ok 了在改成true
keepalive = true
event-threads = 4
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log = OFF
proxy-address = 0.0.0.0:4040 # mysql 连这个端口
admin-address = 0.0.0.0:2345

3、启动:

$ cd /usr/local/mysql-proxy/bin
$ ./mysql-proxy --defaults-file=/usr/local/mysql-proxy/proxy.cnf

更详细的自己看吧,这种方案,最省事,对程序来说是透明,只有一个数据库,但是因为多了一个中间层,或多会有那么一点性能消耗,一般来说可以接受,如果你有强迫症,实在接受不了,可以看我的另一篇贴子,使用mysql jdbc驱动实现读写分离

https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E5%AE%89%E8%A3%85