重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
原文: http://www.enmotech.com/web/detail/1/714/1.html ( 复制链接,打开浏览器即可查看原文 )
墨墨导读:ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎。
ProxySQL提供强大的路由规则。当应用程序自身不支持读写分离时,DBA可以通过配置路由规则为应用程序提供透明的读写分离,使用Keepalived + ProxySQL + Orchestrator为主从提供高可用时,能够有效的避免keepalived + 双主结构 由于keepalived脑裂而造成数据被写错乱的痛点。
介绍
ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎。具有以下特性:
1.为对多个数据库的应用程序请求提供“智能”的负载均衡。
2.实现了MySQL请求协议,能够对应用程序提供透明的读写分离,避免了应用程序实现复杂的读写分离。
3.能够自动感知数据库健康状态和拓扑结构并且能够自动将应用程序请求路由到处于健康状态的MySQL实例。
4.保护应用程序不受底层数据库复杂拓扑结构变化而受影响,能够自动将写请求转发的主库,自动按照权重将读请求发送的主库和从库。
5.提供了对查询SQL的监控分析统计。
6.为管理员提供了强大的控制机制,可以在代理层缓存查询,以便更快地响应查询、重新路由查询,甚至重新改写那些质量较差的查询语句。
模块
ProxySQL组成模块
Qurey Processor 用于匹配查询规则并根据规则决定是否缓存查询或者将查询加入黑名单或者重新路由、重写查询或者镜像查询到其他hostgroup。
User Auth 为底层后端数据库认证提供了用户凭证。
Hostgroup manager – 负责管理发送SQL请求都后端数据库并跟踪SQL请求状态。
Connection pool – 负责管理后端数据库连接,连接池中建立的连接被所有的前端应用程序共享。
Monitoring – 负责监控后端数据库健康状态主从复制延时并临时下线不正常的数据库实例。
安装
1.从 https://github.com/sysown/proxysql/releases 下载相应的版本。
2.yum localinstall proxysql-1.x.rpm
3.启动ProxySQL
/etc/init.d/proxysql start
配置结构
ProxySQL配置可以存储到SQLite数据库并通过SQL语句来管理配置,并通过如下三层配置来管理ProxySQL。