Hi!请登陆

atlas实现mysql读写分离

2020-10-27 60 10/27

注意:只能安装在64位的Linux操作系统上,CentOS官方建议rpm安装方式.

获取地址:https://github.com/Qihoo360/Atlas/releases

目前最新的版本为:

Atlas-2.2.1.el5.x86_64.rpm  CentOS 5.*  版本
Atlas-2.2.1.el6.x86_64.rpm  CentOS 6.*  版本

我的环境是CentOS 6.6 Basic Server x86_64

安装命令:

[root@jhq0229 src]$ rpm -i Atlas-2.2.1.el6.x86_64.rpm

安装位置:

/usr/local/mysql-proxy

配置文件:

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

重要配置文件详解:

(1)线程数
event-threads项设置,过小无法充分发挥多核CPU的性能,过大造成不必要的线程切换开销,推荐设置为CPU的核数.
(2)最小空闲连接数(2.x以上版本不需要该项,1.x版本需要)
min-idle-connections项设置,过小则在高并发下会有报错,过大虽然不报错但在测试时不容易看出读写分离效果,推荐设置为比客户端的并发峰值稍大,详见<配置参数详解>.上面的配置范例是针对Atlas 2.X版本,没有该选项.对于Atlas 1.X版本的配置文件,需要加入该配置选项
(3)Atlas的工作端口
proxy-address项配置,例如proxy-address = 0.0.0.0:1234代表客户端应该使用1234这个端口连接Atlas来发送SQL请求.
(4)Atlas的管理端口
admin-address项配置,例如admin-address = 0.0.0.0:2345代表DBA应该使用2345这个端口连接Atlas来执行运维管理操作.
(5)管理接口的用户名和密码
admin-username项和admin-password项设置,这两项是用来进入Atlas的管理界面的,与后端连接的MySQL没有关系,所以可以任意设置,不需要MySQL在配置上做任何改动.
(6)日志级别
以log-level项配置,分为message、warning、critical、error、debug五个级别.
(7)日志路径
以log-path项配置,如log-path = /usr/local/mysql-proxy/log.
(8)主库的IP和端口
proxy-backend-addresses = 192.168.0.12:3306
(9)从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔.如果想让主库也能分担读请求的话,只需要将主库信息加入到下面的配置项中.
proxy-read-only-backend-addresses = 192.168.0.13:3306,192.168.0.14:3306
(10)用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,用户名与密码之间用冒号分隔.主从数据库上需要先创建该用户并设置密码(用户名和密码在主从数据库上要一致).比如用户名为myuser,密码为mypwd,执行./encrypt mypwd结果为HJBoxfRsjeI=.如果有多个用户用逗号分隔即可.则设置如下行所示:
pwds = myuser: HJBoxfRsjeI=,myuser2:HJBoxfRsjeI=
(11)分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项,子表需要事先建好,子表名称为表名_数字,数字范围为[0,子表数-1],如本例里,子表名称为mt_0、mt_1、mt_2
tables = person.mt.id.3

我的配置:

admin-username = sibajie
admin-password = sibajie25#管理的用户名密码
proxy-backend-addresses = 192.168.9.101:3306#后端写服务器
proxy-read-only-backend-addresses = 192.168.9.102:3306后端读服务器
pwds = root:uwvEzdXUofMtoVZBPiOC6Q==,root:uwvEzdXUofMtoVZBPiOC6Q==#后端服务器用户名密码 密码用bin目录encrypt加密获得,否则无法启动
daemon = true
keepalive = true
event-threads = 16
log-level = debug
log-path = /usr/local/mysql-proxy/log
sql-log = ON
proxy-address = 0.0.0.0:3306#操作的端口
admin-address = 192.168.9.248:3307#管理的端口

保存配置文件,启动:

./bin/ mysql-proxyd mysql-proxy start  #中间是配置文件名称

可以复制bin目录mysql-proxyd 到/etc/init.d/ 就可以通过service 启动关闭重启了.

Tag:

相关推荐