公司新的MYSQL 架构即将上架,而使用什么中间件来解决开发和运维在以前传统MYSQL 搭建中遇到的问题,为什么使用PROXYSQL 来解决以前解决不了的问题。

What’s ProxySQL for MYSQL MGR?_中间件

Q&A 
Why ProxySql ?

1 免费 
2 功能包含故障转移,读写分离,对MYSQL MGR 属于原生支持 (1.4版本后) 
3 目前版本更新较快 
4 MYSQL 三大厂商之一, Percona 支持 
5 配置简单,可以后期维护可以考虑嵌入DOCKER,减少运维压力(MYSQL 集群扩张) 
6 后续的延展和支持,已经在GITHUB页面有相关MYSQL 8 支持

What’s ProxySQL for MYSQL MGR?_sql_02

Function:

1 查询路由,通过PROXYSQL 可以将不同的语句发送到不同的MYSQL集群的机器中去起到读写分离,根据内定在PROXYSQL的规则,以及HOSTGROUP 概念将复杂的语句进行分类发送到不同的MYSQL机器上达到其他预定的功能。

2 支持Failover, 本身PROXYSQL 并没有内置相关的功能,但可以通过探测当前数据库集群的状态来判断集群中那个机器失效,并自动阻断客户程序访问到这台机器,保证

3 某些中间件在重新设置规则后,需要重新启动才能生效,PROXYSQL 可以直接设置后FLash到内存和本地,保证7*24的service

4 ProxxySQL支持应用层的上的代理,不存在底层的设置造成的配置困难和不必要的麻烦

5 语句防火墙,可以根据某些规则的指定,将某些例如 没有where的 select语句弹出执行队列,以强制性的方法来规范开发某些语句的撰写。

performance:

根据PROXYSQL 官方网站的简短的介绍,根据不同的硬件配置,PROXYSQL 可以支持成百上千的同时的连接。

Compare:

以下是对PROXYSQL 与其他中间件对比

Haproxy 是目前最常用的各种数据库的代理软件 
Mysql router 官方的mysql 代理软件

Item

proxysql

HAproxy

mysql router

mysql Group replication

yes

no

yes

mysql master/slave

yes

yes

no

mysql native protocols

yes

no

no

remote control

yes

no

no

connection pooling

yes

no

no

sql firewall

yes

no

no

caching by query

yes

no

no

Streaming to Kafka

no

no

no