本发明专利技术公开了一种数据操作方法及装置,该方法包括:接收针对数据的读请求,查找记录的将所述数据写入主库的写入时刻,确定所述写入时刻到当前时刻的时间长度,根据所述写入时刻将该读请求发送至主库或者从库以读取该数据。在该方法中,中间件在接收到针对数据的读请求后,并不是直接将该读请求发送至从库以读取数据,而是根据该数据的写入时刻到当前时刻的时间长度,和预设阈值进行判断,来决定发送至主库还是从库。从而,在读取数据时,即使从库中未完成数据的同步,仍可以直接从主库中读取,不会因为数据未完成同步导致读取失败的情况,有效提升了读取数据的成功率。
【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种数据操作方法及装置。
技术介绍
随着信息技术的发展,用户可以使用客户端通过网络途径访问相应的数据库(如MySQL数据库、Oracle数据库等)来获取所需的数据。数据库中分为主库和从库,并采用读写分离的方式处理数据:由从库处理客户端发出的读请求,由主库处理客户端发出的写请求。现有技术中,通常在数据库和客户端之间设置有中间件(一种数据中转设备),以管理数据库与大量客户端之间的连接交互,并为各客户端提供数据服务,即,客户端与数据库之间通过中间件进行数据连接。中间件建立了与数据库之间的连接之后,会将用户发出的请求按照所属的请求类型分别发送至主库或从库中。例如:客户端发出写请求,则中间件在接收到该写请求后,将该写请求发送至主库中;客户端发出读请求,则中间件将该读请求发送至从库中。主库执行客户端发送的写请求,完成写入数据的操作后,主库会向从库发送日志,使新写入的数据同步到从库中,从而完成了数据库中数据同步更新的过程。但是,主库向从库同步数据需要一定的时间,若主库将某一数据同步至从库的过程中,客户端发出读请求以读取该数据,那么,由于同步过程未结束,不能在从库中读取到该数据,进而导致读数据失败。可见,现有技术中有很大几率不能正常读取数据。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据操作方法及装置,能够有效避免因数据同步而导致有很大几率不能正常读取数据。根据本专利技术的第一个方面,提出一种数据操作方法,包括:接收针对数据的读请求;查找记录的将所述数据写入主库的写入时刻;根据所述写入时刻将该读请求发送至主库或者从库以读取该数据。根据本专利技术的第二个方面,提出一种数据操作装置,包括:接收模块、查找模块、时差模块以及判断处理模块,其中;所述接收模块,用于接收针对数据的读请求;所述查找模块,用于查找记录的将所述数据写入主库的写入时刻;所述时间模块,用于确定所述写入时刻到当前时刻的时间长度;所述判断处理模块,用于判断所述时间长度是否大于预设阈值,若是,则将该读请求发送至从库以读取该数据,否则,则将该读请求发送至主库以读取该数据。根据本专利技术提供的数据操作方法,中间件在接收到针对某一数据的读请求后,并不是直接将该读请求发送至从库以读取数据,而是查找已记录的该数据的写入时刻,判断该数据的写入时刻到当前时刻的时间长度是否大于预设的阈值,如果时间长度大于阈值,可以认为该数据已经从主库中同步到了从库中,那么,中间件将读请求发送至从库以读取该数据;而如果时间长度小于阈值,就说明该数据还未同步到从库中,从而,中间件将该读请求发送至主库,以直接从主库中进行读取。通过这样的方式,在读取数据时,即使从库中未完成数据的同步,仍可以直接从主库中读取该数据,不会因为数据未完成同步,而导致读取数据时发生失败的情况,有效提升了读取数据的成功率。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为依据本专利技术一个实施例的数据操作过程的示意图;图2为依据本专利技术一个实施例的实例中客户端、中间件以及数据库的连接架构示意图;图3为依据本专利技术一个实施例的数据操作过程在实际应用中的示意图;图4为依据本专利技术一个实施例的数据操作装置结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。下面结合说明书附图,对本专利技术实施例进行详细描述。图1为依据本专利技术一个实施例的数据操作方法,可以包括步骤:S101:接收针对数据的读请求。S102:查找已记录的所述数据的写入时刻。S103:根据所述写入时刻将所述读请求发送至主库或者从库以读取该数据。从上述可知,在该实施例中,中间件在接收到针对某一数据的读请求后,并不是直接将该读请求发送至从库中读取数据,而是查找已记录的该数据的写入时刻,查找该数据的写入时刻的目的在于:根据所述写入时刻,可以判断出该数据是否已经完成了主库到从库的同步过程。这样一来,便可以根据该数据的写入时刻将所述读请求发送至主库或者从库以读取该数据。有效提升了读取数据的成功率。依据本专利技术的一个实施例,中间件可以根据客户端发出的读请求,确定出该读请求所对应的数据,进而将读请求发送至相应的数据库以读取数据。考虑到现有技术中,中间件将接收到的读请求直接发送至从库以读取数据时,存在因数据未同步完成而导致读取失败的情况。因此在本专利技术实施例中,当中间件接收到针对某一数据的读请求之后,将查找该数据的写入时刻。也就是说,在本专利技术中,根据所述数据的写入时刻,就可以确定在发出读请求时,该数据是否完成了同步,具体地,上述方法还包括:确定所述写入时刻到当前时刻的时间长度,判断所述时间长度是否大于预设阈值,并依据上述判断结果将该读请求发送至主库或者从库以读取该数据。如果该数据的写入时刻到当前时刻的时间长度大于预设阈值,可以认为该数据已经从主库中同步到了从库中,那么,中间件将读请求发送至从库以读取该数据;而如果时间长度小于阈值,就说明该数据还未同步到从库中,从而,中间件将该读请求发送至主库,以直接从主库中进行读取。通过这样的方式,在读取数据时,即使从库中未完成数据的同步,仍可以直接从主库中读取该数据,不会因为数据未完成同步,而导致读取数据时发生失败的情况,有效提升了读取数据的成功率。这里需要说明的是,数据的写入操作由主库执行,也即,中间件在接收到客户端发送的数据的写请求之后,将该写请求发送给主库以进行数据写入。那么,数据的写入时刻,就是主库接收到写请求并对该数据进行写入操作的时刻。具体地,依据本专利技术的一个实施例,在接收针对数据的读请求之前,还包括:接收针对所述数据的写请求,并将所述写请求发送至主库以进行写入,记录所述数据的写入时刻。这样一来,主库中所写入的所有的数据,均有各自所对应的写入时刻。当然,在本专利技术中,对于数据的写入时刻的记录,可以在主库完成数据的写本文档来自技高网...
【技术保护点】
一种数据操作方法,其特征在于,所述方法包括:接收针对数据的读请求;查找记录的将所述数据写入主库的写入时刻;以及根据所述写入时刻将该读请求发送至主库或者从库以读取该数据。
【技术特征摘要】
1.一种数据操作方法,其特征在于,所述方法包括:
接收针对数据的读请求;
查找记录的将所述数据写入主库的写入时刻;以及
根据所述写入时刻将该读请求发送至主库或者从库以读取该数据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述写入时刻到当前时刻的时间长度;以及
判断所述时间长度是否大于预设阈值;
其中,根据所述写入时刻将该读请求发送至主库或者从库以读取该数据具
体包括:
依据上述判断结果将该读请求发送至主库或者从库以读取该数据。
3.如权利要求2所述的方法,其特征在于,
若所述时间长度大于预设阈值,则将该读请求发送至从库以读取该数据;
否则,则将该读请求发送至主库以读取该数据。
4.如权利要求1-3中任一项所述的方法,其特征在于,接收针对数据的
读请求之前,所述方法还包括:
接收针对所述数据的写请求;
将所述写请求发送至主库以进行写入;以及
记录所述数据的写入时刻。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述预设阈值通
过以下方式设定:
确定所述主库将数据同步到从库的平均时长,将该平均时长设定为所述预
设阈值。
6.如权利要求1-4中任一项所述的方法,其特征在于,所述预设阈值通
过以下方式设定:
确定所述主库将数据同步到从库的最大时长,将该最大时...
【专利技术属性】
技术研发人员:朱超,陈非,王超,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。