[发明专利]一种基于数据库集群的读写分离处理方法及系统在审
| 申请号: | 202211517315.4 | 申请日: | 2022-11-30 |
| 公开(公告)号: | CN115794948A | 公开(公告)日: | 2023-03-14 |
| 发明(设计)人: | 钟小燕;叶智伟;廖少波;邓龙亮 | 申请(专利权)人: | 天翼云科技有限公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/242 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100010 北京市东城区青*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 数据库 集群 读写 分离 处理 方法 系统 | ||
1.一种基于数据库集群的读写分离处理方法,其特征在于:包括以下步骤:
S1、以一定的时间间隔采集主从节点的同步状态;
S2、对应用SQL语句进行语法解析,判断语句是否为写请求;
S3、将写请求发送到主节点,处理主节点发送的经过改造的ReadyForQuery消息,并保存最新写请求的LSN位置;
S4、接收下一个写请求之前,将读请求发送到应用了S2中LSN位置的任意从节点。
2.根据权利要求1所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述S1中的时间间隔为1ms,通过定时器时间定时。
3.根据权利要求1所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述S1中使用druid解析器将SQL语句区分为写请求或读请求。
4.根据权利要求1所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述S3中对ReadyForQuery消息的改造具体为添加一个长度为Int64的扩展字段标识LSN位置。
5.根据权利要求4所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述对改造的ReadyForQuery消息的处理过程具体包括以下步骤:
接收主节点发送的改造的ReadyForQuery消息;
解析ReadyForQuery消息的扩展字段;
保存最新写请求的LSN位置。
6.根据权利要求5所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述对改造的ReadyForQuery消息的处理过程还包括保存最新写请求的LSN位置后去掉ReadyForQuery消息的扩展字段后再发送给客户端。
7.根据权利要求1所述的一种基于数据库集群的读写分离处理方法,其特征在于:所述S4还包括当S2语法解析的语句为读语句时,判断S1获取的节点同步LSN位置是否与S3保存的最新写请求的LSN位置相同。
8.根据权利要求1所述的一种基于数据库集群的读写分离处理方法,其特征在于:使用Java编写的数据库代理服务Agent。
9.一种基于数据库集群的读写分离处理装置,其特征在于:包括获取模块、判断模块、LSN位置存储模块和发送模块,其中:
获取模块,用于以一定的时间间隔采集主从节点的同步状态;
判断模块,用于对应用SQL语句进行语法解析,判断语句是否为写请求;
LSN位置存储模块,用于将写请求发送到主节点,处理主节点发送的经过改造的ReadyForQuery消息,并保存最新写请求的LSN位置;
发送模块,用于接收下一个写请求之前,将读请求发送到应用了S2中LSN位置的任意从节点。
10.一种基于数据库集群的读写分离处理系统,其特征在于:包括采集模块、解析模块、处理模块和路由模块,其中:
采集模块,当服务启动时,启动器同步启动,根据客户配置的时间间隔采集主从节点的同步状态;
解析模块,代理装置中的druid解析器将SQL语句区分为写请求或读请求;
处理模块,根据解析模块的语法解析结果,代理装置将写请求发送到主节点,并解析从主节点发送的ReadyForQuery消息的扩展字段,保存最新写请求的LSN位置,最后需要去掉ReadyForQuery消息的扩展字段后再发送给客户端;
路由模块,比较采集模块的节点同步LSN位置与处理模块最新写请求的LSN位置,在下一个写请求语句前的所有读请求都可以发送到应用了该LSN的任意节点上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼云科技有限公司,未经天翼云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211517315.4/1.html,转载请声明来源钻瓜专利网。





