1.ProxySQL简介
ProxySQL 是一款可以实际用于生产环境的 MySQL 中间件,它有官方版和 percona 版两种。percona版是在官方版的基础上修改的,添加了几个比较实用的工具。本文以官方版本为例。
ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,包括:
- 最基本的读/写分离,且方式有多种。
- 可定制基于用户、基于schema、基于语句的规则对SQL语句进行路由。换句话说,规则很灵活。基于schema和与语句级的规则,可以实现简单的sharding。
- 可缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了。此外,作者已经打算实现更丰富的缓存策略。
- 监控后端节点。ProxySQL可以监控后端节点的多个指标,包括:ProxySQL和后端的心跳信息,后端节点的read-only/read-write,slave和master的数据同步延迟性(replication lag)。
2.ProxySQL安装
方法一:直接下载rpm包安装
- 软件包下载地址:https://github.com/sysown/proxysql/releases
- 本次下载版本:
proxysql-2.0.14-1-centos7.x86_64.rpm
- 下载好所需的软件包后,直接安装即可
yum -y localinstall proxysql-2.0.14-1-centos7.x86_64.rpm
方法二:存储库安装
1.添加yum源配置
cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name= ProxySQL YUM repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.0.x/centos/\$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/repo_pub_key
EOF
2.安装ProxySQL:
yum install proxysql
或者指定想要的版本
yum install proxysql-version
3.安装后检查
[root@mysql8 ~]# proxysql -V
ProxySQL version 2.0.14-70-g7b02b19, codename Truls
[root@mysql8 ~]# proxysql --help
High Performance Advanced Proxy for MySQL
USAGE: proxysql [OPTIONS]
OPTIONS:
-c, --config ARG Configuration file
-D, --datadir ARG Datadir
-e, --exit-on-error Do not restart ProxySQL if crashes
-f, --foreground Run in foreground
-h, -help, --help, --usage Display usage instructions.
-M, --no-monitor Do not start Monitor Module
-n, --no-start Starts only the admin service
-r, --reuseport Use SO_REUSEPORT
-S, --admin-socket ARG Administration Unix Socket
-V, --version Print version
--clickhouse-server Enable ClickHouse Server
--idle-threads Create auxiliary threads to handle idle connections
--initial Rename/empty database file
--no-version-check Do not check for the latest version of ProxySQL
--reload Merge config file into database file
--sqlite3-server Enable SQLite3 Server
ProxySQL rev. 2.0.14-70-g7b02b19 -- Mon Sep 7 18:43:56 2020
Copyright (C) 2013-2020 ProxySQL LLC
This program is free and without warranty
4.通过systemd管理ProxySQL
systemctl start proxysql.service # 启动proxysql
systemctl stop proxysql.service # 停止proxysql
systemctl status proxysql.service # 查看proxysql状态
systemctl restart proxysql.service # 重启proxysql