数据请求处理方法及装置与流程

文档序号:12377198阅读:178来源:国知局
数据请求处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及数据请求处理方法及装置。



背景技术:

云盘是互联网存储工具,它通过互联网为企业和个人提供信息的储存、读取、下载等服务。相对于传统的实体磁盘来说云盘更方便,用户不需要把储存资料的实体磁盘带在身上,却一样可以通过互联网,轻松从云端读取自己所存储的信息。

目前,现有的云盘服务端的数据库结构大多为单个数据库和单张表的结构,所有用户存储在云盘的数据均集中在一个数据库中。用户的读操作和写操作均由该数据库处理。

发明人在实现本发明的过程中发现:当大量的读操作或写操作并发时,数据库需处理的数据请求会非常的多,数据库的延迟问题也会凸显。单个数据库的并发量大概在2000左右,当并发量严重超过时,会严重影响到数据库的稳定性甚至不能正常工作。可见,随着云盘用户量的不断增长,现有的单个数据库和单张表的结构已远远不能满足现有的使用需求,亟需提供一种新的技术方案以提高云盘的并发量。



技术实现要素:

本发明提供一种数据请求处理方法及装置,用以解决现有技术中数据并发量低的问题。

本发明实施例提供一种数据请求处理方法,包括:

获取发起数据请求的用户的属性信息;

根据所述属性信息,选定数据库集群、所述数据库集群中的数据库以及所述数据库中的数据表;

将所述数据请求发送至所述数据表处理。

本发明还提供了一种数据请求处理装置,包括:

获取模块,用于获取发起数据请求的用户的属性信息;

选择模块,用于根据所述属性信息,选定数据库集群、所述数据库集群中的数据库以及所述数据库中的数据表;

发送模块,用于将所述数据请求发送至所述数据表处理。

本发明实施例提供的数据请求处理方法及装置,通过获取用户的属性信息,并根据该属性信息来选定数据库集群,然后在所述数据库集群中选定数据库及所述数据库中的数据表,实现了分库分表的数据库结构,以将不同用户请求划分到不同的数据集群,并将划分到同一数据集群的不同用户请求分散到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同数据库来处理,进而有效的提高了云盘服务端的并发量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的数据库集群的示例图;

图2为本发明实施例一提供的数据请求处理方法的流程图;

图3为本发明实施例二提供的数据请求处理方法的流程图;

图4为本发明实施例三提供的数据请求处理装置的结构示意图;

图5为本发明实施例四提供的数据请求处理装置的结构示意图;

图6示出了本发明实施例五提供的执行数据请求处理方法的电子设备的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先结合图1介绍本发明实施例提供的数据请求处理方法可适用的应用场景。

本发明实施例提供的数据请求处理方法适用的云盘服务端的数据库结构可包括多个数据库集群10,每个数据库集群10包含有多个数据库11,每个数据库11中按照其自身的性能配置有相应数量的数据表。多个数据库集群使用统一的接口(例如可以是图1中的主数据库)向用户提供服务,其可利用保存在多个数据库后端节点上的数据副本获得更高的可用性;并利用多个数据库后端节点提供单一数据库系统所无法提供的更强大的数据管理能力和更高的查询响应效率。

其中,在数据库集群层中,每个数据库集群包含的多个数据库可采用主/从(master/slave)结构、多主/多从结构或多主结构。其中,主/从(master/slave)结构即包含有一个作为master的数据库,以及一个或多个作为slave的数据库。多主/多从结构即包含有多个作为master的数据库,以及多个作为slave的数据库。多主结构即包含有多个作为master的数据库。对于master角色的数据库可以承担读写操作,对于slave角色的数据库只承担读操作,以及在master数据库发生故障后,接管一些处理任务。

本发明实施例提供的技术方案基于上述数据库结构,实现了分库分表的数据库结构。相比现有技术中的单数据库单表的结构,分库分表的结构可实现将不同用户请求划分到不同的数据集群,并将划分到同一数据集群的不同用户请求分散到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同数据库来处理,进而有效的提高了云盘服务端的并发量。

图2示出了本发明实施例一提供的数据请求处理方法的流程示意图。本实施例提供的所述方法的执行主体可以是数据请求处理装置,该数据请求处理装置可以是安装在数据库集群中一个具体的具有嵌入式程序的硬件,也可以是安装在数据库集群中的一个应用软件(应用工具,APP),还可以是嵌入在操作系统中的工具软件。该数据请求处理装置也可以是数据集群中的一个功能模块,本发明实施例对此不进行限定。如图1所示,本实施例一提供的所述方法,包括:

步骤101、获取发起数据请求的用户的属性信息。

其中,用户发起的所述数据请求中可携带用户的标识。在具体实施时,所述用户的标识可以是用户的注册名、用户的统一资源定位符(Uniform Resource Locator,URL)或用户的IP地址等等,本发明对此不作具体限定。

可选的,所述用户的属性信息可以是用户所属的批次属性和业务属性。其中,批次属性是表征用户属于哪一批用户的信息,简单的说就是表征用户是新用户,还是老用户。业务属性是用来表征用户的数据业务量的信息,简单的说就是表征用户是属于需求大数据量业务的用户,还是需求小数据量业务的用户。具体的,可根据预设的判断规则来确定,如用户上传云端的数据量的大小,用户访问的频繁度等,本发明实施例对此不作具体限定。当然,用户可以在发起数据请求时,即在数据请求中携带业务请求类型,以向服务端申请相应的业务量服务。

步骤102、根据所述属性信息,选定数据库集群、所述数据库集群中的数据库以及所述数据库中的数据表。

其中,可选的,所述属性信息可包括:业务属性和批次属性。在具体实施时,即根据业务属性和批次属性,在数据库集群系统(如图1所示的系统)中选定数据库集群、所述数据库集群中的数据库以及所述数据库中的数据表。

实际上,大数据量业务的用户发起数据请求后,数据库集群处理该业务类型的用户的请求所需占用的资源相对于其他小数据量业务的用户要多。因此,若采用现有技术将所有数据集中在一个数据库中,这样当出现高并发量的数据请求时,特别是还包含有大数据量业务的用户的请求,此时数据库极易出现延迟问题,且当并发量严重超过数据库的并发量阈值时,就会严重影响到数据库的稳定性甚至不能正常工作。而本发明实施例提供的技术方案可将相同业务属性的用户请求分散到不同的数据库集群或者直接将业务属性为大数据量业务的用户请求分散到不同的数据库集群中,可有效的避免将同属于大数据量业务的用户请求处于同一数据库集群中,当出现高并发量的数据请求时该数据库集群因严重延迟而发生故障进而影响该数据库集群中其他用户使用的情况,降低了数据库集群因高并发量引起的故障率。

步骤103、将所述数据请求发送至所述数据表处理。

具体的,若所述数据请求为写请求时,所述数据请求发送至所述数据表后,将所述用户的数据存储在所述数据表中。若所述数据请求为读请求时,所述数据请求发送至所述数据后,从所述数据表中调取相应的数据。

本发明实施例提供的技术方案,根据用户的属性信息,选定数据库集群,并在所述数据库集群中选定数据库及所述数据库中的数据表,实现了分库分表的数据库结构,以将不同用户请求划分到不同的数据集群,并将划分到同一数据集群的不同用户请求分散到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同数据库来处理,进而有效的提高了云盘服务端的并发量。

如图3所示,本发明实施例二提供的数据请求处理方法的流程示意图。如图3所示,本实施例二提供的所述方法,包括:

步骤201、接收用户发送的数据请求。

其中,所述数据请求携带有用户标识。所述用户的标识可以是用户的注册名、用户的统一资源定位符(Uniform Resource Locator,URL)或用户的IP地址等等,本发明对此不作具体限定。所述数据请求还可携带有业务请求类型。

步骤202、根据所述用户发起的所述数据请求中携带的业务请求类型,确定所述用户的业务属性。

其中,业务属性是用来表征用户的数据业务量的信息,简单的说就是表征用户是属于需求大数据量业务的用户,还是需求小数据量业务的用户。用户可在发起数据请求时向服务端申请其所需的业务请求类型,以得到相应的业务量服务。例如,所述业务请求类型可以是大数据量业务类型、小数据量业务类型等等,本发明实施例对此不作具体限定。

步骤203、根据所述用户发起的所述数据请求中携带的用户标识,获取所述用户的注册信息,并根据所述注册信息确定所述用户的批次属性。

在具体实施时,用户在进行注册时,其上传的注册信息会与用户的标识进行对应存储。其中,所述注册信息可包括如下的任意一种或多种:用户名(可作为用户的标识)、性别、年龄、手机号、邮箱、行业和学历等等。用户通过网页上的注册表上传注册信息后,系统会记录用户上传的时间,并将该时间作为用户的注册时间,并将该注册时间与用户上传的信息统一作为注册信息进行存储,以备后续调取使用。

可选的,上述步骤中的所述根据所述注册信息确定所述用户的批次属性,可由下述步骤实现:

首先,提取所述注册信息中包含的注册时间。

然后,确定所述注册时间所在的批次区间。

在具体实施时,可预先划出一些时间段作为批次区间。例如,2016年1月1日0时至2016年3月31日24时为批次区间1,2016年4月1日0时至2016年6月30日24时为批次区间2,等等。假设用户的注册时间为2016年2月8日,则确定出的所述注册时间所在的批次区间为批次区间1。

最后,根据所述批次区间,确定所述用户的批次属性。

在具体实施时,对应不同的批次区间会为用户确定不同的批次属性。例如,预先为各批次区间设定相应的批次属性,并将批次区间与其相对应的批次属性进行关联存储。根据预设的批次区间与批次属性的对应关系,获取所述批次区间对应的批次属性,该批次属性即为所述用户确定的批次属性。

例如下表1所示的预设的批次区间与批次属性的对应关系列表

表1、预设的批次区间与批次属性的对应关系

假设,根据所述注册时间确定出的批次区间为批次区间1,则根据上述表1示出的预设的批次区间与批次属性的对应关系,可获取到所述批次区间1的批次属性为第一批次。

步骤204、根据所述业务属性,按照预设的业务均衡策略选定数据库集群。

具体的,所述预设的业务均衡策略可包括如下规则:

规则1、将具有相同业务属性的用户分散到不同的数据库集群;或者

规则2、将业务属性为大数据量业务的用户分散到不同数据库集群中。

步骤205、判断选定的数据库集群的已存储数据量是否大于预设阈值,若是,则执行步骤206~207;否则,执行步骤208~209。

其中,所述预设阈值可以根据实际使用情况人为设定,本发明实施例对该预设阈值的具体值不作具体限定。

步骤206、根据所述批次属性,在所述数据库集群中选定数据库。

其中,所述数据集群中包含有多个数据库,每个数据库中可对应同一批次属性的用户。简言之,新用户与旧用户的数据处于不同的数据库中。这样可实现将新增的活跃用户保持在同一数据库中,数据库中没有旧数据的累赘,能有效的提高云盘服务端的业务处理性能。相对新增的新用户,旧用户都集中到一个数据库中,其性能使用稳定靠谱,旧用户特点也明确,使用频度也归于可控,不会有特别集中的使用频率,完全的满足旧用户旧集群的用户使用。

步骤207、按照预设的负载均衡策略,在所述数据库中选定数据表。

基于上述步骤,即可将不同批次的用户均匀的指向到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同的数据表处理,这样就能有效的提高云盘服务端的并发量。

这里需要说明的是:每个数据库配置多少张表可根据该数据库的自身性能进行拆分。即,首先获取数据库的性能信息;然后根据所述性能信息为所述数据库配置相应数量的数据表。

基于上述技术方案可知,用户被分配到不同的数据库集群中,单个数据库引起的故障造成的影响范围也被限制在了单个数据库集群中,不再会造成整个服务所有的用户受到影响,服务的故障率也会有很大程度的降低。

步骤208、添加新的数据库集群,在所述新的数据库集群中选定数据库。

步骤209、根据所述数据库的性能,为所述数据库分配相应数量的数据表,并将其中一个数据表作为选定的数据表。

其中,所述数据库的性能可以是数据量的存储容量,数据库的数据处理性能等,本发明实施例对此不作具体限定。

本发明实施例通过判断选定的数据库集群的已存储数据量的大小,以监控数据库集群的数据存储量,降低因数据量过大而引起的高并发量时的故障率;另外,在为用户选定的数据库集群的已存储数据量大于预设阈值时,实现了一种动态的数据库集群搭建方案,能够根据业务的发展以及用户量的增长,进行数据库集群的自动扩容。此外,本发明实施例的动态扩容机制,在进行数据库集群的扩容时,无需重写集群中的用户分配机制以及节点访问规则,显著降低了工作量和扩容成本。

此外,基于上述技术方案可知,本发明实施例在用户的增长上可以做到无限增长,只需要不断的增加数据库集群即可不断的扩展用户,使得新增用户分配到新的集群中,不存在用户的使用过多,数据库无法存储的尴尬问题;另外,每个存在的用户都给分配在了一个优质环境的数据表中,当有高并发量的数据访问时能有效的降低其故障率。

需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

图4示出了本发明实施例三提供的数据请求处理装置的结构示意图。本实施例提供的所述数据请求处理装置可实现上述实施例一提供的方法。如图4所示,本实施例提供的所述数据请求处理装置包括:获取模块30、选择模块31和发送模块32。其中,

获取模块30,用于获取发起数据请求的用户的属性信息;

选择模块31,用于根据所述属性信息,选定数据库集群、所述数据库集群中的数据库以及所述数据库中的数据表;

发送模块32,用于将所述数据请求发送至所述数据表处理。

这里需要说明的是,本实施例提供的所述装置可实现上述方法实施例中提供的技术方案,具体的实现原理可参见上述实施例中的相应内容,此处不再赘述。

本发明实施例提供的技术方案,根据用户的属性信息,选定数据库集群,并在所述数据库集群中选定数据库以及所述数据库中的数据表,实现了分库分表的数据库结构,以将不同用户请求划分到不同的数据集群,并将划分到同一数据集群的不同用户请求分散到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同数据库来处理,进而有效的提高了云盘服务端的并发量。

图5示出了本发明实施例四提供的数据请求处理装置的结构示意图。本实施例四提供的数据请求处理装置可实现上述实施例二提供的所述方法。具体的,本实施例四是基于上述实施例三的基础上,其中,所述的获取模块可采用如下结构实现。具体的,所述获取模块30包括:获取单元301、第一确定单元302和第二确定单元303。其中,

获取单元301,用于根据所述用户发起的所述数据请求中携带的用户标识,获取所述用户的注册信息;

第一确定单元302,用于根据所述注册信息确定所述用户的批次属性;

第二确定单元303,用于根据所述用户发起的所述数据请求中携带的业务请求类型,确定所述用户的业务属性。

进一步的,所述第一确定单元302,具体用于:

提取所述注册信息中包含的注册时间;

获取所述注册时间所在的批次区间;

根据所述批次区间,确定所述用户的批次属性。

进一步的,本实施例中提到的所述属性信息包括:业务属性和批次属性;相应的,所述选择模块31,具体用于:

根据所述业务属性,按照预设的业务均衡策略选定数据库集群;

根据所述批次属性,在所述数据库集群中选定数据库;

按照预设的负载均衡策略,在所述数据库中选定数据表。

进一步的,本实施例提供的所述数据请求处理装置还可包括:添加模块33和分表模块34。其中,

添加模块33,用于当根据所述属性信息选定的所述数据库集群的已存储数据量大于第一阈值时,添加新的数据库集群;

所述选择模块31,还用于在所述新的数据库集群中选定数据库;

分表模块34,用于根据所述数据库的性能,为所述数据库分配相应数量的数据表,并将其中一个数据表作为选定的数据表。

本发明实施例提供的技术方案,根据用户的属性信息,选定数据库集群,并在所述数据库集群中选定数据库以及所述数据库中的数据表,实现了分库分表的数据库结构,以将不同用户请求划分到不同的数据集群,并将划分到同一数据集群的不同用户请求分散到不同的数据库的不同数据表中,当有大并发量的数据请求时,可由不同数据库来处理,进而有效的提高了云盘服务端的并发量。

图6示出了本发明实施例五提供的执行数据请求处理方法的电子设备的硬件结构示意图。本实施例提供的所述设备可实现上述方法实施例一或实施例二提供的技术方案。具体的,所述设备包括存储器50以及一个或者多个处理器51。图6中以一个处理器为例。

执行数据请求处理方法的设备还可以包括:输入装置52和输出装置53。

处理器51、存储器50、输入装置52和输出装置53可以通过总线或者其他方式连接,图5中以通过总线连接为例。

存储器50作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块(例如,附图4所示的获取模块30、选择模块31和发送模块32)。处理器51通过运行存储在存储器50中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例数据请求处理方法。

存储器50可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据处理装置的使用所创建的数据等。此外,存储器50可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器50可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至数据请求处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置52可接收输入的数字或字符信息,以及产生与数据请求处理装置的功能控制有关的键信号输入。输出装置53可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器50中,当被所述一个或者多个处理器51执行时,执行上述任意方法实施例中的数据请求处理方法。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1