[发明专利]实现数据库读写分离的方法在审
申请号: | 202210699612.9 | 申请日: | 2022-06-20 |
公开(公告)号: | CN115098573A | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 傅文辉;黄炎;周文雅 | 申请(专利权)人: | 上海爱可生信息技术股份有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/28 |
代理公司: | 上海思捷知识产权代理有限公司 31295 | 代理人: | 竹励萍 |
地址: | 201203 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 数据库 读写 分离 方法 | ||
本发明提供了一种实现数据库读写分离的方法,包括:读写分离中间件分别和主数据库和从数据库建立连接池;读写分离中间件和客户端建立连接,并接收客户端的SQL请求;通过数据库和客户端交互协议提取并保存SQL请求的属性、读写分离中间件和客户端的会话状态、以及SQL请求对会话状态的影响;根据属性、会话状态以及对会话状态的影响转发到与主数据库的连接或与从数据库的连接;其中,当进入特定会话状态时,固定当前会话的连接;当连接更新时,读写分离中间件根据会话状态设置新的连接,以使得新的连接和当前会话的连接相同。本发明可以更为准确地将客户端的请求转化到对应的连接,在更改会话状态时,仍然可以执行读写分离并且得到正确的结果。
技术领域
本发明涉及数据库领域,尤其是涉及一种实现数据库读写分离的方法。
背景技术
MySQL作为一种主流的关系型数据库,在互联网行业广泛应用,在面对数据量大、业务复杂和响应延时要求高等问题时,通过使用数据库集群可以使读写分离,提高数据库的系统性能。数据库集群通常包括一个主数据库和至少一个从数据库,其中主数据库负责数据的写入,从数据库负责数据的读取,从数据库从主数据库备份数据。而数据库的读写需要读写分离中间件系统。
现有的数据库读写分离中间件系统,例如Amoeba等,只是单纯的根据客户端请求的属性,转发到主数据库或从数据库的连接上。其中典型的流程是:读写分离中间件和后端主从数据库建立连接池;读写分离中间件和客户端建立连接;读写分离中间件收到客户端SQL请求;根据SQL请求的属性,选择合适的后端连接(与主数据库的连接或与从数据库的连接),并转发请求;收到后端数据库执行完毕返回的结果后,将结果转发到客户端。例如:现有读写分离中间件X连接一组主从数据库,主数据库DB1负责处理写入请求,从数据库DB2负责处理读取请求。读写分离中间件X收到的来自客户端的SQL请求1,解析处理其中的SQL语句,本次为读语句,则从连接池中获取一根DB2的连接,转发请求1。DB2执行完成后,将执行结果发送给X,X再将结果转发给客户端。最后将DB2连接放回连接池。X收到的来自客户端的SQL请求2,本次为写语句,则从连接池中获取一根DB1的连接,并执行如上的后续操作。
然而,这种单纯地判断SQL语句属性,并转发的方法,存在以下缺点:1、当存在特殊的会话状态,如:临时表、事务或只读事务时,仅凭SQL语句属性并不能得出正确的转发方向。例如临时表只在主库连接上存在,涉及临时表的读取,应当转发主库;2、SQL请求可能会改变会话状态,当读写分离中间件前后使用不同的连接时,会话状态会丢失。读写分离中间件无法支持依赖会话状态的SQL请求,将拒绝执行,或虽然执行但无法得到正确的结果。
发明内容
本发明的目的在于提供一种实现数据库读写分离的方法,在转发客户端的SQL请求时,将会话状态考虑到其中,从而可以更为准确地将客户端的请求转化到对应的连接,并且在更改会话状态时,仍然可以执行读写分离并且得到正确的结果。
为了达到上述目的,本发明提供了一种实现数据库读写分离的方法,包括:
读写分离中间件分别和主数据库和从数据库建立连接池;
读写分离中间件和客户端建立连接,并从所述客户端获取SQL请求;
通过数据库和客户端交互协议,读写分离中间件提取并保存所述SQL请求的属性、读写分离中间件和客户端的会话状态以及对所述会话状态的影响;
根据所述属性、会话状态以及对所述会话状态的影响将所述SQL请求转发到与主数据库的连接或与从数据库的连接;以及
其中,当所述读写分离中间件和客户端进入特定会话状态时,固定当前会话的连接;当与所述主数据库或者与所述从数据库的连接更新时,所述读写分离中间件根据所述会话状态设置新的连接,以使得所述新的连接和当前会话的连接相同。
可选的,在所述的实现数据库读写分离的方法中,所述读写分离中间件和主数据库的连接池包括若干个连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱可生信息技术股份有限公司,未经上海爱可生信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210699612.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种云原生存储数据卷的一致性快照生成方法和系统
- 下一篇:一种自动修复涂料