CN105589960A - 基于多个数据库集群的数据请求处理方法及装置 - Google Patents
基于多个数据库集群的数据请求处理方法及装置 Download PDFInfo
- Publication number
- CN105589960A CN105589960A CN201510971605.XA CN201510971605A CN105589960A CN 105589960 A CN105589960 A CN 105589960A CN 201510971605 A CN201510971605 A CN 201510971605A CN 105589960 A CN105589960 A CN 105589960A
- Authority
- CN
- China
- Prior art keywords
- data
- request
- base
- route
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多个数据库集群的数据请求处理方法及装置,至少能够解决传统的数据库集群系统的存储容量以及处理能力受到主服务器的内存及响应速度的制约,无法满足大数据量的处理需求的技术问题。该处理方法包括:接收数据请求;根据预定义规则获取所述数据请求中包含的路由字段的值;根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;将所述数据请求发送给相应的数据库集群处理。通过本发明能够将数据内容分布式存储在多个数据库集群中,从而显著提升了集群系统的存储容量以及处理能力,且集群系统的可扩展性更强。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于多个数据库集群的数据请求处理方法及装置。
背景技术
随着大数据时代的来临,计算机要处理的数据量越来越丰富。受限于服务器的内存及响应速度的限制,单台服务器已经无法满足处理海量数据的需求,因此,由多台服务器组成的数据库集群系统便应运而生了。传统的数据库集群系统中仅包含一个数据库集群,该集群由一台主服务器以及多台从服务器构成,该种架构模式也可以称为单主架构模式。
在这种单主架构模式中,整个系统的存储容量以及处理能力依然受到主服务器的内存及响应速度的制约,无法满足大数据量的处理需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于多个数据库集群的数据请求处理方法及装置。
依据本发明的一个方面,提供了一种基于多个数据库集群的数据请求处理方法,包括:接收数据请求;根据预定义规则获取所述数据请求中包含的路由字段的值;根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;将所述数据请求发送给相应的数据库集群处理。
依据本发明的另一方面,提供了一种基于多个数据库集群的数据请求处理装置,包括:接收模块,适于接收数据请求;获取模块,适于根据预定义规则获取所述数据请求中包含的路由字段的值;确定模块,适于根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;发送模块,适于将所述数据请求发送给相应的数据库集群处理。
在本发明提供的基于多个数据库集群的数据请求处理方法及装置中,能够根据预定义规则获取数据请求中包含的路由字段的值,并进一步根据预先设置的分布式存储规则确定与路由字段的值相对应的数据库集群,从而将数据请求分发给相应的数据库集群处理。由此可见,通过本发明能够将数据内容分布式存储在多个数据库集群中,从而显著提升了集群系统的存储容量以及处理能力,且集群系统的可扩展性更强。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图;
图2示出了本实施例中的数据库集群系统的架构示意图;
图3示出了本发明另一实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图;以及,
图4示出了本发明实施例提供的基于多个数据库集群的数据请求处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于多个数据库集群的数据请求处理方法及装置,至少能够解决传统的数据库集群系统的存储容量以及处理能力受到主服务器的内存及响应速度的制约,无法满足大数据量的处理需求的技术问题。
图1示出了本发明实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图。如图1所示,该数据请求处理方法包括:
步骤S110:接收数据请求。
其中,数据请求可能来自用户终端,也可能来自管理服务器,本发明对数据请求的来源不做限定。
步骤S120:根据预定义规则获取数据请求中包含的路由字段的值。
其中,预定义规则中定义了路由字段的名称和/或位置对应的语法结构,根据预定义规则获取数据请求中包含的路由字段的值具体还包括:根据语法结构对数据请求进行解析,以获取路由字段的值。
步骤S130:根据预先设置的分布式存储规则确定与路由字段的值相对应的数据库集群。
其中,分布式存储规则为:将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群;
或者,分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。
步骤S140:将数据请求发送给相应的数据库集群处理。
可选地,每个数据库集群中包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,该数据请求由数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,该数据请求由数据库集群中的从数据库进行处理。
在本发明提供的基于多个数据库集群的数据请求处理方法中,能够根据预定义规则获取数据请求中包含的路由字段的值,并进一步根据预先设置的分布式存储规则确定与路由字段的值相对应的数据库集群,从而将数据请求分发给相应的数据库集群处理。由此可见,通过本发明能够将数据内容分布式存储在多个数据库集群中,从而显著提升了集群系统的存储容量以及处理能力,且集群系统的可扩展性更强。
下面结合一个具体实施例详细描述本发明提供的基于多个数据库集群的数据请求处理方法。图2示出了本实施例中的数据库集群系统的架构示意图。如图2所示,本实施例中的集群系统包括三个数据库集群,分别为第一数据库集群、第二数据库集群和第三数据库集群,其中,每个数据库集群中分别包括一台主服务器以及多台从服务器。通过本发明中的方法能够向三个数据库集群中的任一集群写入数据,也能够从任一集群中读取数据,因此,能够将数据内容分布式存储在三个数据库集群中。下面参照图3详细介绍本实施例中的各个步骤:
步骤S310:预先设置分布式存储规则。
其中,分布式存储规则用于将数据内容分布存储在多个数据库集群中。例如,以数据表为例,如果按照传统方式仅将数据表存储在一个数据库集群中,该数据表的存储容量将受到相应数据库集群的存储容量的制约。为了克服这一问题,在本实施例中,根据数据表中各条数据记录所包含的路由字段,将数据表中的数据记录拆分为三部分,分别存储在三个数据库集群中,因此,与传统方式相比,数据表的存储容量能够提升三倍。
具体实现时,在本实施例中,预先将数据表中各条数据记录的ID字段设置为路由字段,根据ID字段的数值范围确定对应的数据库集群。设置路由字段的主要目的在于:结合分布式存储规则,根据路由字段的值来确定相应的数据库集群,因此,除ID字段外,其他能够唯一标识各条数据记录的字段也可以作为路由字段,本发明对路由字段的具体字段名不做限定。
本发明中的分布式存储规则可以灵活通过多种方式实现,在本实施例中,着重介绍下述两种分布式存储规则:
本实施例提供的第一种分布式存储规则为:将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。例如,假设各张数据表中的数据记录的ID字段的数值范围为[0,3000],将该数值范围划分为如下三个子区间:第一个子区间[0,1000)对应于第一数据库集群,第二个子区间[1000,2000)对应于第二数据库集群,第三个子区间[2000,3000]对应于第三数据库集群。当接收到数据请求后,根据数据请求中包含的ID字段的数值范围确定对应的数据库集群。
第一种分布式存储规则的优点在于:便于扩容。具体地,随着各张数据表中的数据记录逐渐增多,当由三个数据库集群所组成的集群系统无法满足日益增长的存储需求时,能够在无需进行数据迁移的情况下,将集群系统扩展为由四个甚至更多个数据库集群组成的系统,从而方便地实现集群系统的扩容。
本实施例提供的第二种分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。具体地,在本实施例中,集群系统由三个数据库集群组成,因此,通过将ID字段对3取模来确定对应的数据库集群:第一数据库集群对应于模运算结果为0的数据请求,第二数据库集群对应于模运算结果为1的数据请求,第三数据库集群对应于模运算结果2的数据请求。例如,假设数据请求中包含的ID字段的数值为10,其对3取模后结果为1,因而对应于第二数据库集群。
第二种分布式存储规则的优点在于:数据分布均匀。具体地,通过对ID字段取模,能够将数据表中的全部数据记录均匀地分布在各个数据库集群中,不会产生一个数据库集群中的数据量显著多于另一数据库集群中的数据量的情况。
步骤S320:预先设置用于解析数据请求的语法定义规则。
通过语法定义规则能够快速获取数据请求的语义,提高解析速度。通常情况下,数据请求包括数据操作以及数据操作对象。相应地,该语法定义规则中不仅定义了各种类型的数据操作所对应的语法结构,还定义了数据操作对象所对应的语法结构。
具体地,数据操作对应的语法结构包括:数据操作的类型以及各种类型的数据操作的字段名称以及字段位置。例如,数据操作的类型包括:写入类型以及读取类型,写入类型的数据操作又进一步分为:插入类型的数据请求,删除类型的数据请求以及修改类型的数据请求。读取类型的数据操作又进一步包括检索类型的数据请求。例如,插入类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Insert”,字段位置位于数据请求的首部;删除类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Delete”,字段位置位于数据请求的首部;检索类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Select”,字段位置位于数据请求的首部。除此之外,数据操作对应的语法结构中可能还定义了各种数据操作相对应的格式规范,例如,插入数据操作的格式规范包括“Insert+into+数据操作对象”,检索数据操作的格式规范包括:“Select*from+数据操作对象”。由此可见,通过数据操作对应的语法结构能够快速识别数据请求的操作类型,并根据该类型的语法特征快速获取数据操作对象。
另外,数据操作对象对应的语法结构包括:数据操作对象的标识以及路由字段的名称和/或位置。根据数据操作对象的标识能够快速获取数据请求中包含的数据操作对象,根据路由字段的名称和/或位置能够快速解析出数据请求中包含的路由字段,进而确定与该数据请求相对应的数据库集群。
上述的步骤S310和步骤S320的执行顺序没有限制,且步骤S310和步骤S320也可以不做为单独的步骤执行。
步骤S330:接收数据请求。
该数据请求可能来源于集群系统的用户终端,也可能来源于集群系统内部的管理服务器,总之,本发明对数据请求的来源不做限定。接收到的数据请求的数量可能是一条也可能是多条,当同时接收到多条数据请求时,为了避免遗漏其中的某一条数据请求,可以将接收到的多条数据请求先缓存在请求列表中,并从请求列表中依次取出各条数据请求进行处理。具体处理时,既可以通过单线程依次处理的方式逐一处理各条数据请求,也可以通过多线程并行处理的方式并行处理各条数据请求,以便提高效率。
另外,接收数据请求并对接收到的数据请求执行后续处理的操作过程既可以由集群系统内部的任一数据库集群的服务器来完成,也可以由集群系统中另外的分发服务器来完成。
步骤S340:根据预先设置的语法定义规则,确定该数据请求所对应的语法结构。
例如,假设在步骤S330中接收到如下两条数据请求:第一条数据请求为“Insertintotest(id,name)values(1,test1)”,第二条数据请求为“select*fromtestwhereid=2”。通过查询步骤S320中设置的语法定义规则,确定第一条数据请求所对应的语法结构包括:数据操作类型为“Insert”,其对应的格式规范包括“Insert+into+数据操作对象”。第二条数据请求所对应的语法结构包括:数据操作类型为“Select”,其对应的格式规范包括“Select*from+数据操作对象”。
步骤S350:根据语法结构对接收到的数据请求进行解析,以获取数据请求中包含的路由字段的值。
由于语法定义规则中分别定义了各种类型的数据操作所对应的语法结构以及数据操作对象所对应的语法结构,并且,数据操作对象对应的语法结构进一步包括路由字段的名称和/或位置。因此,在本步骤中,通过语法结构对数据请求进行解析,能够获取到数据请求中包含的数据操作、数据操作对象、以及路由字段的值。
例如,以第一条数据请求为例来说,首先,查询各种类型的数据操作所对应的语法结构,确定该条数据请求中的首字段“Insert”为用于指示数据操作类型的字段,根据该字段的具体内容确定该数据请求中包含的数据操作为插入类型的数据操作,并且,根据语法结构确定插入类型的数据操作的格式规范为“Insert+into+数据操作对象”。然后,根据上述格式规范从相应位置处获取数据操作对象,由于数据操作对象的语法结构包括数据操作对象的标识信息以及路由字段的名称和位置,因此,根据数据操作对象的标识信息“test”确定“test(id,name)values(1,test1)”部分为数据操作对象,根据路由字段的名称“id”和字节位置确定其中的路由字段的值为“1”。
又如,以第二条数据请求为例来说,首先,查询各种类型的数据操作所对应的语法结构,确定该条数据请求中的首字段“Select”为用于指示数据操作类型的字段,根据该字段的具体内容确定该数据请求中包含的数据操作为检索类型的数据操作,并且,根据语法结构确定检索类型的数据操作的格式规范为“Select*from+数据操作对象”。然后,根据上述格式规范从相应位置处获取数据操作对象,由于数据操作对象的语法结构包括数据操作对象的标识信息以及路由字段的名称和位置,因此,根据数据操作对象的标识信息“test”确定“testwhereid=2”部分为数据操作对象,根据路由字段的名称“id”和字节位置确定其中的路由字段的值为“2”。
步骤S360:根据预先设置的分布式存储规则确定与路由字段的值相对应的数据库集群,并将数据请求发送给相应的数据库集群处理。
具体处理时,根据步骤S350中的解析结果,对数据请求中包含的数据操作对象执行相应的数据操作。其中,由于本发明中的集群系统通过分布式存储规则将数据内容分布式存储在多个数据库集群中,因此,在处理时,还要根据路由字段的值确定与该数据请求相对应的数据库集群,以便将数据请求发送给相应的数据库集群处理。
在步骤S310中提到了两种分布式存储规则,下面结合每种分布式存储规则分别加以介绍:
第一种分布式存储规则:
在第一种分布式存储规则中,将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群(具体参见步骤S310)。
此时,对于数据请求“Insertintotest(id,name)values(1,test1)”而言,路由字段ID的值为1,属于第一个子区间,因而该数据请求对应于第一数据库集群,将该数据请求发送给第一数据库集群处理。具体地,可以将该数据请求直接发送给第一数据库集群,也可以仅将其中的数据操作以及数据操作对象发送给第一数据库集群。第一数据库集群根据其中的数据操作确定该数据请求为写入类型的数据请求,因而将该数据请求分配给主服务器(也叫主数据库)处理,主服务器查询表名为test1的数据表,并向该数据表中插入一条ID=1的数据记录。
对于数据请求““select*fromtestwhereid=2””而言,路由字段ID的值为2,也属于第一个子区间,因而该数据请求也对应于第一数据库集群,将该数据请求也发送给第一数据库集群处理。第一数据库集群根据其中的数据操作确定该数据请求为读取类型的数据请求,因而将该数据请求分配给从服务器(也叫从数据库)处理,从服务器从第一数据库集群中查询所有ID=2的数据记录。
第二种分布式存储规则:
在第二种分布式存储规则中,对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群。(具体参见步骤S310)。
此时,对于数据请求“Insertintotest(id,name)values(1,test1)”而言,路由字段ID的值为1,其对3取模时的模运算结果为1,因而该数据请求对应于第二数据库集群,将该数据请求发送给第二数据库集群处理。第二数据库集群通过上述方式查询表名为test1的数据表,并向该数据表中插入一条ID=1的数据记录。对于数据请求““select*fromtestwhereid=2””而言,路由字段ID的值为2,其对3取模时的模运算结果为2,因而该数据请求对应于第三数据库集群,将该数据请求发送给第三数据库集群处理。第三数据库集群通过上述方式查询所有ID=2的数据记录。
在上述实现方式中,每个数据库集群都包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,由数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,由数据库集群中的从数据库进行处理。由此可见,通过本实施例中的方案,不仅读取类型的数据请求能够由多个数据库集群分布式处理,且写入类型的数据请求也能够由多个数据库集群分布式处理,从而提升了集群系统的存储容量和处理效率,且便于对集群系统进行扩展。
综上所述,在本实施例中,一方面,通过语法定义规则能够快速解析数据请求,迅速识别出数据请求中包含的路由字段,并根据路由字段将数据请求分发给相应的数据库集群处理,显著提高了数据请求的解析效率,缩短了处理时间,为分布式存储方式提供了基础,克服了现有的解析方式效率低下的缺陷。另一方面,通过分布式存储规则将数据表分布式存储在多个数据库集群中,显著提升了集群系统的存储容量,使得读取类型以及写入类型的数据请求都能够由多个数据库集群分布式处理,改进了现有的分布式集群系统只能通过单一数据库集群中的多个从服务器实现读取类型的数据请求的分布式处理,无法实现写入类型的数据请求的分布式处理的缺陷(因为单一数据库集群中仅存在一台主服务器,因而写入类型的数据请求只能由该主服务器处理)。
另外,本领域技术人员可以对上述步骤中的细节进行调整,例如,步骤S340以及步骤S350的主要目的在于:获取数据请求中包含的路由字段的值,因此,在S340以及步骤S350中,也可以仅获取数据请求中包含的路由字段的值,而不必获取数据操作以及数据操作对象。步骤S360的主要目的在于:确定与路由字段的值相对应的数据库集群,并将数据请求发送给相应的数据库集群处理。当S340以及步骤S350中没有获取数据操作以及数据操作对象时,可以在步骤S360中由相应的数据库集群来获取数据请求中的数据操作以及数据操作对象;另外,当S340以及步骤S350中获取了数据操作以及数据操作对象时,可以在步骤S360中直接将获取到的数据操作以及数据操作对象发送给相应的数据库集群。
本领域技术人员可以理解,上述实施例为优选实施例,其中的部分步骤并不是必须的,例如设置语法定义规则的步骤在本发明中并不是必须的,省略这些步骤也能够实现分布式存储数据的技术效果。另外,本领域技术人员还可以对上述步骤进行各种改进和变形,可以将其中的部分步骤合并为更少的步骤,也可以将其中的部分步骤拆分为更多的步骤,还可以调整部分步骤的执行顺序。
图4示出了本发明另一实施例提供的基于多个数据库集群的数据请求处理装置的结构示意图。如图4所示,该装置包括:
接收模块41,适于接收数据请求;
获取模块42,适于根据预定义规则获取数据请求中包含的路由字段的值;
确定模块43,适于根据预先设置的分布式存储规则确定与路由字段的值相对应的数据库集群;
发送模块44,适于将数据请求发送给相应的数据库集群处理。
可选地,预定义规则中定义了路由字段的名称和/或位置对应的语法结构,获取模块42具体用于:根据语法结构对数据请求进行解析,以获取路由字段的值。
其中,数据请求中包含的路由字段是根据分布式存储规则预先设定的字段。
可选地,分布式存储规则为:将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。
或者,分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。
其中,每个数据库集群中包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,数据请求由数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,数据请求由数据库集群中的从数据库进行处理。
其中,写入类型的数据请求包括:插入数据请求、删除数据请求或修改数据请求;读取类型的数据请求包括:检索数据请求。
上述各个模块的具体工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
在本发明提供的基于多个数据库集群的数据请求处理方法及装置中,预先为数据请求设定了语法定义规则,因而能够根据该语法定义规则,对数据请求进行语法分析,从而确定数据请求对应的语法结构,并根据语法结构对数据请求进行快速解析。由此可见,与传统的词法分析方式不同,本发明提供的方式能够对数据请求进行语法分析,从而快速确定数据请求的语义,进而获取到数据请求中包含的各个字段的具体内容。该方法大幅提高了数据请求的处理效率,缩短了服务器的响应时延,为数据库集群的可扩展性提供了基础。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1、一种基于多个数据库集群的数据请求处理方法,包括:
接收数据请求;
根据预定义规则获取所述数据请求中包含的路由字段的值;
根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;
将所述数据请求发送给相应的数据库集群处理。
A2、根据A1所述的方法,其中,所述预定义规则中定义了路由字段的名称和/或位置对应的语法结构,所述根据预定义规则获取所述数据请求中包含的路由字段的值具体还包括:
根据所述语法结构对所述数据请求进行解析,以获取所述路由字段的值。
A3、根据A1或A2所述的方法,其中,所述数据请求中包含的路由字段是根据所述分布式存储规则预先设定的字段。
A4、根据A3所述的方法,其中,所述分布式存储规则为:将所述路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。
A5、根据A3所述的方法,其中,所述分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。
A6、根据A1-A5任一所述的方法,其中,每个数据库集群中包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,所述数据请求由所述数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,所述数据请求由所述数据库集群中的从数据库进行处理。
A7、根据A6所述的方法,其中,所述写入类型的数据请求包括:插入数据请求、删除数据请求或修改数据请求;所述读取类型的数据请求包括:检索数据请求。
B8、一种基于多个数据库集群的数据请求处理装置,包括:
接收模块,适于接收数据请求;
获取模块,适于根据预定义规则获取所述数据请求中包含的路由字段的值;
确定模块,适于根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;
发送模块,适于将所述数据请求发送给相应的数据库集群处理。
B9、根据B8所述的装置,其中,所述预定义规则中定义了路由字段的名称和/或位置对应的语法结构,所述获取模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取所述路由字段的值。
B10、根据B8或B9所述的装置,其中,所述数据请求中包含的路由字段是根据所述分布式存储规则预先设定的字段。
B11、根据B10所述的装置,其中,所述分布式存储规则为:将所述路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。
B12、根据B10所述的装置,其中,所述分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。
B13、根据B8-B12任一所述的装置,其中,每个数据库集群中包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,所述数据请求由所述数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,所述数据请求由所述数据库集群中的从数据库进行处理。
B14、根据B13所述的装置,其中,所述写入类型的数据请求包括:插入数据请求、删除数据请求或修改数据请求;所述读取类型的数据请求包括:检索数据请求。
Claims (10)
1.一种基于多个数据库集群的数据请求处理方法,包括:
接收数据请求;
根据预定义规则获取所述数据请求中包含的路由字段的值;
根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;
将所述数据请求发送给相应的数据库集群处理。
2.根据权利要求1所述的方法,其中,所述预定义规则中定义了路由字段的名称和/或位置对应的语法结构,所述根据预定义规则获取所述数据请求中包含的路由字段的值具体还包括:
根据所述语法结构对所述数据请求进行解析,以获取所述路由字段的值。
3.根据权利要求1或2所述的方法,其中,所述数据请求中包含的路由字段是根据所述分布式存储规则预先设定的字段。
4.根据权利要求3所述的方法,其中,所述分布式存储规则为:将所述路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。
5.根据权利要求3所述的方法,其中,所述分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。
6.根据权利要求1-5任一所述的方法,其中,每个数据库集群中包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,所述数据请求由所述数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,所述数据请求由所述数据库集群中的从数据库进行处理。
7.根据权利要求6所述的方法,其中,所述写入类型的数据请求包括:插入数据请求、删除数据请求或修改数据请求;所述读取类型的数据请求包括:检索数据请求。
8.一种基于多个数据库集群的数据请求处理装置,包括:
接收模块,适于接收数据请求;
获取模块,适于根据预定义规则获取所述数据请求中包含的路由字段的值;
确定模块,适于根据预先设置的分布式存储规则确定与所述路由字段的值相对应的数据库集群;
发送模块,适于将所述数据请求发送给相应的数据库集群处理。
9.根据权利要求8所述的装置,其中,所述预定义规则中定义了路由字段的名称和/或位置对应的语法结构,所述获取模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取所述路由字段的值。
10.根据权利要求8或9所述的装置,其中,所述数据请求中包含的路由字段是根据所述分布式存储规则预先设定的字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510971605.XA CN105589960A (zh) | 2015-12-22 | 2015-12-22 | 基于多个数据库集群的数据请求处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510971605.XA CN105589960A (zh) | 2015-12-22 | 2015-12-22 | 基于多个数据库集群的数据请求处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105589960A true CN105589960A (zh) | 2016-05-18 |
Family
ID=55929539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510971605.XA Pending CN105589960A (zh) | 2015-12-22 | 2015-12-22 | 基于多个数据库集群的数据请求处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105589960A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338806A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种业务控制方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
CN103294785A (zh) * | 2013-05-17 | 2013-09-11 | 华中科技大学 | 一种基于分组的元数据服务器集群管理方法 |
CN103324732A (zh) * | 2013-06-29 | 2013-09-25 | 优视科技有限公司 | Mysql数据库水平切分方法、mysql连接建立方法及装置 |
CN104468777A (zh) * | 2014-12-05 | 2015-03-25 | 北京奇虎科技有限公司 | 数据操作方法和装置 |
CN104580520A (zh) * | 2015-01-29 | 2015-04-29 | 广州华多网络科技有限公司 | 一种运行互动业务的方法及装置 |
CN104731516A (zh) * | 2013-12-18 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 一种存取文件的方法、装置及分布式存储系统 |
CN105024855A (zh) * | 2015-07-13 | 2015-11-04 | 浪潮(北京)电子信息产业有限公司 | 分布式集群管理系统和方法 |
-
2015
- 2015-12-22 CN CN201510971605.XA patent/CN105589960A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
CN103294785A (zh) * | 2013-05-17 | 2013-09-11 | 华中科技大学 | 一种基于分组的元数据服务器集群管理方法 |
CN103324732A (zh) * | 2013-06-29 | 2013-09-25 | 优视科技有限公司 | Mysql数据库水平切分方法、mysql连接建立方法及装置 |
CN104731516A (zh) * | 2013-12-18 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 一种存取文件的方法、装置及分布式存储系统 |
CN104468777A (zh) * | 2014-12-05 | 2015-03-25 | 北京奇虎科技有限公司 | 数据操作方法和装置 |
CN104580520A (zh) * | 2015-01-29 | 2015-04-29 | 广州华多网络科技有限公司 | 一种运行互动业务的方法及装置 |
CN105024855A (zh) * | 2015-07-13 | 2015-11-04 | 浪潮(北京)电子信息产业有限公司 | 分布式集群管理系统和方法 |
Non-Patent Citations (2)
Title |
---|
华竹轩 等: ""支持海量数据的分布式数据库架构设计与验证"", 《河南科学》 * |
魏斌: ""高性能集群部署"", 《电子信息与计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338806A (zh) * | 2020-05-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种业务控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032575A (zh) | 数据查询方法、装置、设备和存储介质 | |
US10140351B2 (en) | Method and apparatus for processing database data in distributed database system | |
JP2020507866A (ja) | データ処理方法およびデバイス | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN103034540B (zh) | 分布式消息系统及其设备和协调方法 | |
CN107798017B (zh) | 分布式数据库中的执行计划信息生成方法和系统 | |
CN108932257A (zh) | 多维度数据的查询方法及装置 | |
CN105608228B (zh) | 一种高效的分布式的rdf数据存储方法 | |
CN106960020B (zh) | 一种创建索引表的方法及设备 | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN109767274B (zh) | 一种对海量发票数据进行关联存储的方法及系统 | |
CN103034541A (zh) | 一种分布式消息系统及其中的设备和方法 | |
CN104239508A (zh) | 数据查询方法和装置 | |
WO2014137258A1 (en) | Selection of data storage settings for an application | |
CN106708636A (zh) | 基于集群的数据缓存方法及装置 | |
CN108139927A (zh) | 联机事务处理系统中事务的基于动作的路由 | |
CN111368097A (zh) | 一种知识图谱抽取方法及装置 | |
CN105389394A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
CN109710223A (zh) | 基于分布式kv存储系统的api网关热插拔系统 | |
US11169993B2 (en) | Datastore mechanism for managing out-of-memory data | |
CN106708911A (zh) | 一种云环境下数据文件同步的方法和装置 | |
CN104636135A (zh) | 一种节点访问方法和系统、客户端代理和客户端 | |
CN105589960A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
CN111428114A (zh) | Elasticsearch搜索引擎的索引创建方法及装置 | |
CN105095283A (zh) | 网络社交系统中准好友的推荐方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160518 |