返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html
<http://www.cnblogs.com/f-ck-need-u/p/7586194.html#middleware>

 

<>

1.ProxySQL简介

之前的文章里,介绍了一个MySQL的中间件:MySQL Router。详细内容参见:MySQL Router实现MySQL的读写分离
<https://www.cnblogs.com/f-ck-need-u/p/9276639.html>。


这里准备用一个系列来详细介绍一个能实实在在用在生产环境的MySQL中间件:ProxySQL。它有两个版本:官方版和percona版,percona版是在官方版的基础上修改的,添加了几个比较实用的工具。在我这个系列文章中,我使用的是官方版。

官方站点:官方站点 <http://www.proxysql.com/>
官方github:官方github <https://github.com/sysown/proxysql/wiki>
官方手册:官方手册 <https://github.com/sysown/proxysql/wiki>
percona ProxySQL手册:percona ProxySQL手册
<https://www.percona.com/doc/percona-xtradb-cluster/LATEST/howtos/proxysql.html>

我已经将ProxySQL的官方手册进行了翻译,请参见我的github wiki:ProxySQL中文手册
<https://github.com/malongshuai/proxysql/wiki> 。我也将翻译版的markdown文件导出为了pdf,各位可下载:
ProxySQL中文手册.pdf <https://download.csdn.net/download/a905815661/10525665> 。

ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,包括:

* 最基本的读/写分离,且方式有多种。

*
可定制基于用户、基于schema、基于语句的规则对SQL语句进行路由。换句话说,规则很灵活。基于schema和与语句级的规则,可以实现简单的sharding。

* 可缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了。此外,作者已经打算实现更丰富的缓存策略。

*
监控后端节点。ProxySQL可以监控后端节点的多个指标,包括:ProxySQL和后端的心跳信息,后端节点的read-only/read-write,slave和master的数据同步延迟性(replication
lag)。
<>

2.安装ProxySQL

以 CentOS 的 rpm 包为例。
cat <<EOF | tee /etc/yum.repos.d/proxysql.repo [proxysql_repo] name= ProxySQL
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/\$releasever
gpgcheck=1 gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key EOF
然后直接安装即可。
yum -y install proxysql
或者直接去github上下载rpm包或源码包: https://github.com/sysown/proxysql/releases/tag/v1.4.9
<https://github.com/sysown/proxysql/releases/tag/v1.4.9>

默认情况下,rpm安装的ProxySQL只提供了SysV风格的服务脚本/etc/init.d/proxysql
。所以,可通过该脚本管理ProxySQL的启动、停止等功能。
[root@xuexi ~]# /etc/init.d/proxysql --help Usage: ProxySQL
{start|stop|status|reload|restart|initial}
例如:
service proxysql start # 启动proxysql service proxysql stop # 停止proxysql service
proxysql status # 查看proxysql状态
如果想要通过systemd管理ProxySQL,可在/usr/lib/systemd/system/proxysql.service中写入如下内容:
[root@xuexi ~]# vim /usr/lib/systemd/system/proxysql.service [Unit]
Description=High Performance Advanced Proxy for MySQL After=network.target
[Service] Type=simple User=mysql Group=mysql PermissionsStartOnly=true
LimitNOFILE=102400 LimitCORE=1073741824 ExecStartPre=/bin/mkdir -p
/var/lib/proxysql ExecStartPre=/bin/chown mysql:mysql -R /var/lib/proxysql
/etc/proxysql.cnf ExecStart=/usr/bin/proxysql -f Restart=always
一般来说,ProxySQL很少停止或重启,因为绝大多数配置都可以在线修改。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信