分布式数据库集群的数据操作方法及系统技术方案

技术编号:12619969 阅读:63 留言:0更新日期:2015-12-30 17:25
本发明专利技术涉及数据库集群技术领域,公开了一种分布式数据库集群的数据操作方法及系统。所述方法包括步骤:接收用户的数据操作请求,对所述数据操作的类型进行识别;同时设置队列和缓存区,将非查询操作存入队列的同时将所述非查询操作的数据存入缓存区;通过所述队列将所述非查询操作交由主库处理并返回操作状态消息;将查询操作交由从库处理,对于同时存在于所述从库和所述缓存区中的数据,将所述数据从所述缓存区和所述从库中取出并过滤,将过滤后的所述数据作为查询结果返回。本发明专利技术的技术方案通过队列及缓存区的控制实现了高并发及安全的数据操作。

【技术实现步骤摘要】

本专利技术涉及数据库集群
,特别涉及一种分布式数据库集群的数据操作方法及系统
技术介绍
互联网、尤其是移动互联网的发展给传统的数据库数据管理带来了极大的挑战,借助于互联网数据操作可以在任意时间地点进行,原有的集中管理式数据库在面对高并发事务时的处理能力和容错能力均难以保证数据的安全性和完整性。比如,对于多个异地节点同时进行数据输入和查询操作的,传统集中式数据库通常采用读写控制来按序进行,但该方式一方面降低了处理效率,严重影响整体性能;另一方面又会造成用户等待时间变长,降低用户体验。因此,现有技术中进一步出现了主从库方式来提高数据操作效率,主从库通过备份和同步方式实现并发读写,但其同样存在明显缺陷:主从库只能保证不同类型的数据操作并行处理,同类操作的并行处理极易造成数据及数据库的损坏;对同一数据的读写操作并行处理的逻辑复杂,且很难保证用户获取正确的数据。
技术实现思路
针对现有技术的缺陷,本专利技术的目的是提供一种分布式数据库集群的数据操作方法及系统,以提高数据并发操作的效率和可靠性。根据本专利技术的一个方面,提供了一种分布式数据库集群的数据操作方法,包括步骤:接收用户的数据操作请求,对所述数据操作的类型进行识别;同时设置队列和缓存区,将非查询操作存入队列的同时将所述非查询操作的数据存入缓存区;通过所述队列将所述非查询操作交由主库处理并返回操作状态消息;将查询操作交由从库处理,对于同时存在于所述从库和所述缓存区中的数据,将所述数据从所述缓存区和所述从库中取出并过滤,将过滤后的所述数据作为查询结果返回。优选地,所述方法还包括步骤:在所述主库与所述从库之间实时进行同步或周期性进行同步。优选地,所述方法还包括步骤:在所述同步完成后将已同步到所述从库的数据从所述缓存区中删除。优选地,所述方法还包括步骤:在所述主库处理所述非查询操作没有报错的情况下,将所述请求的Ack动作和数据库的消息状态写成是一个事务,统一在所述操作状态消息中反馈。优选地,所述方法还包括步骤:所述主库处理所述非查询操作时,在所述非查询操作中加入幂等性业务逻辑。根据本专利技术的另一个方面,还同时提供了一种分布式数据库集群的数据操作系统,包括:识别模块,用于接收用户的数据操作请求,对所述数据操作的类型进行识别;并发模块,用于同时设置队列和缓存区,将非查询操作存入队列的同时将所述非查询操作的数据存入缓存区;写入模块,用于通过所述队列将所述非查询操作交由主库处理并返回操作状态消息;查询模块,用于将查询操作交由从库处理,对于同时存在于所述从库和所述缓存区中的数据,将所述数据从所述缓存区和所述从库中取出并过滤,将过滤后的所述数据作为查询结果返回。优选地,所述系统还包括:同步模块,用于在所述主库与所述从库之间实时进行同步或周期性进行同步。优选地,所述系统还包括:清理模块,用于在所述同步完成后将已同步到所述从库的数据从所述缓存区中删除。优选地,所述系统还包括:消息处理模块,用于在所述主库处理所述非查询操作没有报错的情况下,将所述请求的Ack动作和数据库的消息状态写成是一个事务,统一在所述操作状态消息中反馈。优选地,所述系统还包括:幂等处理模块,用于在所述主库处理所述非查询操作时,在所述非查询操作中加入幂等性业务逻辑。本专利技术实施例提供了一种分布式数据库集群的数据操作方法及系统,通过队列及缓存区的控制实现了高并发及安全的数据操作,一方面队列的使用保证了主库写入数据的惟一性和安全性,另一方面,使用缓存区保证从库查询数据的准确性和完整性,故本专利技术的技术方案可显著提高数据操作效率,提升了用户体验。【附图说明】图1是本专利技术实施例中分布式数据库集群的数据操作方法的流程示意图;图2是本专利技术实施例中分布式数据库集群的数据操作系统的模块示意图;图3是本专利技术的一个优选实施例中数据操作系统的应用场景示意图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。现有技术中,数据库集群采用主从库形式配置,主库用于唯一保存权威的数据库数据,从库作为主库的备份存在。现有技术的数据库集群系统在工作时,主库接收并处理写操作,实现数据的增删修改;从库接收并处理读操作,向用户返回查询结果,系统定时将主库数据与从库同步。现有技术可实现读写操作的并行处理,但同一类型的操作或同一数据的不同操作仍需复杂的逻辑控制,无法通过并行处理提高效率,同时数据的安全性和完整性也难以控制。为此,本专利技术实施例首先提供了一种分布式数据库集群的数据操作的技术方案,通过队列及缓存区的控制实现了高并发及安全的数据操作。如图1所示,本专利技术实施例中的分布式数据库集群的数据操作方法包括步骤:SI,接收用户的数据操作请求,对所述数据操作的类型进行识别;S2,同时设置队列和缓存区,将非查询操作存入队列的同时将所述非查询操作的数据存入缓存区;S3,通过所述队列将所述非查询操作交由主库处理并返回操作状态消息;S4,将查询操作交由从库处理,对于同时存在于所述从库和所述缓存区中的数据,将所述数据从所述缓存区和所述从库中取出并过滤,将过滤后的所述数据作为查询结果返回。其中,非查询操作一般是数据写入操作,包括但不限于新增数据、修改数据和删除数据等。采用上述方式,一方面使用队列保证主库写入数据的惟一性,当出现高并发业务时,尤其是对同一数据的并发处理时,队列可有效保证处理效率和安全性,只需按照数据操作发生的先后时序顺序处理即可。另一方面,使用缓存区保证从库查询数据的准确性和完整性,对于已发生但尚未更新到从库的数据,结合缓存区数据完成的查询操作可确保用户及时获取正确且最新的结果。在本专利技术实施例中,更进一步地,采用数据同步将主库的数据更新传递到从库。优选地,主库与从库之间实时同步或周期性进行同步。对于数据缓存区,在所述同步完成后将已同步到所述从库的数据从所述缓存区中删除;缓存区中仅保留尚未同步到所述从库的数据,比如尚未写入主库的数据或已写入主库但尚未进行同步的数据等,以避免缓存区无限扩大和无效内容影响查询效率。优选地,查询操作的处理中,所述过滤包括拼接、去重等,将两部分数据合并成完整的数据反馈给用户。对于非查询操作,在处理没有报错的情况下,将请求消息的Ack动作和数据库的消息状态写成是一个事务,统一在所述操作状态消息中反馈;该方式可保证队列中的操作仅被无错地处理一次,避免重复写入引发数据异常。但对于例外的情况,比如业务逻辑执行完毕而没有报错时,理论上说即将触发返回所述操作状态消息的行为,但在还没有触发的时刻服务挂掉了(包括但不限于设备和/或网络严重异常),这时在系统恢复后可能会重复执行该业务逻辑;为此,在非查询操作中加入幂等性业务逻辑以避免重复执行同一操作。另外,对于异常的处理,对于非查询操作出现异常时,既不能丢弃该操作及相关数据,也不能无限地抛出异常,因而优选在有限次抛出异常后转由人工介入处理。优选地,设置专门存放异常操作及数据的异常队列,在异常处理时按异常队列的内容顺序去处理,该方式可以进一步保证数据的完整性。更优选地,在将所述非查询操本文档来自技高网...

【技术保护点】
一种分布式数据库集群的数据操作方法,其特征在于,所述方法包括步骤:接收用户的数据操作请求,对所述数据操作的类型进行识别;同时设置队列和缓存区,将非查询操作存入队列的同时将所述非查询操作的数据存入缓存区;通过所述队列将所述非查询操作交由主库处理并返回操作状态消息;将查询操作交由从库处理,对于同时存在于所述从库和所述缓存区中的数据,将所述数据从所述缓存区和所述从库中取出并过滤,将过滤后的所述数据作为查询结果返回。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵万冬李玉福叶波庞雁婷程前
申请(专利权)人:北京农信互联科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1