mysql 【进阶】 读写分离数据中间层

  1. 注意事项
  2. 安装部署
    1. 下载
    2. 安装
    3. 备份默认的配置文件
    4. 写一份新的配置文件
    5. 启动

Atlas 是由 Qihoo 360 Web 平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。

360内部使用 Atlas 运行的 mysql 业务,每天承载的读写请求数达几十亿条。

注意事项

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以上

4、Atlas 中代理的Mysql用户密码使用密文

5、Atlas 可时指定多个配置文件(自定义不同的Altas 端口)

安装部署

Atlas 有个分表的版本,一般场景下不需要分表这种需求,

我这里选择安装普通的版本(其他版本请访问 GitHub Atlas):

下载

wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm

安装

rpm -i  Atlas-2.2.1.el6.x86_64.rpm

安装完毕后在 /usr/local/mysql-proxy 目录下出现如下内容

备份默认的配置文件

cd /usr/local/mysql-proxy/conf&&mv test.cnf test.cnf.bak

写一份新的配置文件

cat >/usr/local/mysql-proxy/conf/test.cnf<<EOF
#管理接口的用户名
admin-username = user
#管理接口的密码
admin-password = pwd
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 127.0.0.1:3307
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 127.0.0.1:3308@1
#用户名与其对应的加密过的MySQL密码,密码使用bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!
pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc=
#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。
daemon = true
#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true,true后面不能有空格。
keepalive = true
#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置
event-threads = 8
#日志级别,分为message、warning、critical、error、debug五个级别
log-level = message
#日志存放的路径
log-path = /usr/local/mysql-proxy/log
#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF
#sql-log = OFF
#慢日志输出设置。当设置了该参数时,则日志只输出执行时间超过sql-log-slow(单位:ms)的日志记录。不设置该参数则输出全部日志。
#sql-log-slow = 10
#实例名称,用于同一台机器上多个Atlas实例间的区分
#instance = test
#Atlas监听的工作接口IP和端口
proxy-address = 0.0.0.0:1234
#Atlas监听的管理接口IP和端口
admin-address = 0.0.0.0:2345
#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项
#tables = person.mt.id.3
#默认字符集,设置该项后客户端不再需要执行SET NAMES语句
#charset = utf8
#允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接
#client-ips = 127.0.0.1, 192.168.1
#Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置
#lvs-ips = 192.168.1.1

启动

-


转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:mysql 【进阶】 读写分离数据中间层

字数:1k

本文作者:夏来风

发布时间:2020-12-10, 22:06:40

原始链接:http://www.demo1024.com/blog/mysql-atlas/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。