暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用proxysql中间层背景

原创 石榴 2022-08-11
700

实际项目中,读写分离,失败重连,负载均衡,连接池等功能往往写在应用中,不仅干扰了实际应用的代码,还使应用出错的机会大大增加。

在应用中为数据库开发的上述功能,重用性较低,换成另外的项目或开发环境基本上就不能使用或者需要修改原来运用的代码,使得应用代码耦合了数据库封装的API。

为了为应用提供独立透明的高性能服务并尽可能保证代码的通用性以及减少代码的变动代价、提高运维效率,开发了中间件。


1.1 为什么不是DBproxyMysql proxy

通过上面的介绍读者可能会发现mysql proxy、DBproxy似乎也能实现这些功能,为什么使用ProxySQL,原因如下:

1、DBproxy是在奇虎360Atlas开发,功能源于mysql proxy;ProxySQL拓展性高、使用灵活、自动故障感知、处理能力较强

2、可少维护mysql上的vip,功能多、包含dbproxy功能

3、dbproxy在sql支持方面限制多,如使用业务改造点可能较多、代价大

4、2017年后dbproxy未出新版本,技术支持较弱;ProxySQL不停迭代更新

1.2 ProxySQL的角色

       ProxySQL 位于Application与数据库之间,为应用提供透明的代理服务。

       ProxySQL 对外接口采用 mysql protocol,没有定义自己的协议和接口,使得任何mysql的应用都能方便的使用ProxySQL。

       ProxySQL 没有Build 任何 SQL语句,而是直接接收client的SQL、命令等进行代理转发, ProxySQL 采用 SQL、命令等 mysql protocol规范作为统一的接口,完备性得到了保证,能够完成mysql的所有功能操作。

1.3 定位

数据库中间层:简化应用程序实现高可用的代价、屏蔽DB集群的内部结构,消除集群调整对应用的影响、收敛入口,统一管理

采用mysql交互协议,对应用透明:应用无需修改程序,耦合度低;支持大部分特性满足当前所有功能需求。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论