1、mysql实现读写分离的方式
mysql实现读写方式有几种方式有几下几种:
- 程序修改mysql操作,直接和数据库通信。简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助。
- amoeba,直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案,自己分配账户,和后端数据库权限管理独立,权限处理不够灵活。
- mysql-proxy,直接实现读写分离和负载均衡,不用修改代码,master和slave用一样的账号,效率低。
- mycat中间件
- proxysql中间件(推荐使用)
2、ProxySQL简介
proxySQL是一款可以实际用于生产环境的MySQL中间件,它有官方版和percona版两种。
percona版是官方版的基础上修改的,虽然也是一个轻量级别产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能够满足中间件中间件所需的绝大多数功能,包括:
- 最基本的读写分离,且方式多种
- 可定制基于用户、基于schema、基于语句的规则对SQL语句经行路由。换句话说。规则很灵活。基于schema和与语句级规则,可以实现简单的sharding(分库分表)
- 可以缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了,此外作者已经打算实现更丰富的缓存策略。
- 监控后端节点。ProxySQL可以监控后端节点的多个指标,包括:ProxySQL和后端的心跳信息,后端节点的read-only/read-write,slave和master的数据同步延迟。
3、ProxySQL安装
3.1、yum的方式安装
//配置yum源
# cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo] name= ProxySQL
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/7
gpgcheck=1
gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key
EOF
# yum -y install proxysql
警告:这种安装方式wifi上不能下载,需要手机流量下载
3.2、二进制安装
proxyslq下载地址:https://files.cnblogs.com/files/liuzhijun666/proxysql.rar
# rz 上传
# rpm -ivh proxysql-1.4.8-1-centos7.x86_64.rpm --nodeps
# systemctl restart proxysql
# yum install -y mariadb
# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:6032 *:*
LISTEN 0 128 *:6033 *:*
LISTEN 0 128 *:6033 *:*
LISTEN 0 128 *:6033 *:*
LISTEN 0 128 *:6033 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25
# mysql -uadmin -padmin -h127.0.0.1 -P6032 //admin为管理账号(仅限本机)
mysql> show databases;
+-----+---------------+-------------------------------------+
| seq | name | file |
+-----+---------------+-------------------------------------+
| 0 | main | |
| 2 | disk | /var/lib/proxysql/proxysql.db |
| 3 | stats | |
| 4 | monitor | |
| 5 | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+
5 rows in set (0.01 sec)
后续操作请见mysql类的内容