一种负载均衡方法及装置与流程

文档序号:11063391阅读:1240来源:国知局
一种负载均衡方法及装置与制造工艺

本申请涉及计算机数据处理技术领域,特别涉及一种负载均衡方法及装置。



背景技术:

随着网络应用的快速发展,网络系统需要处理的数据量也越来越大,相应地对数据存储要求也越来越高。数据库的负载是否均衡对业务系统的数据处理效率至关重要,因此在数据存储和处理过程中通常需要保障数据库良好的负载均衡。

现有技术中,在数据存储时通常根据某个规则对数据进行分库分表来保证数据库的负载均衡。例如,利用传统的hash映射的方式来代表数据内容和数据存储地址之间的映射关系,将数据存储到相应的数据库。具体的,数据分配可以包括:将代表数据内容和数据存放地址之间映射关系的存储标识编码在待处理数据的ID上;将所述待处理数据存储在所述存储标识对应的存储地址。进一步的,当所述待处理数据需要进行加载处理时,可以确定与所述存储标识相对应的加载标识;从所述加载标识对应的存储地址中加载所述数据,进行数据处理。

随着业务的发展,现有技术中数据存储方案有可能导致数据库中存储的数据分布不均,数据库压力不一致。因此,现有技术中亟需一种有效的负载均衡策略保证数据库的负载均衡。



技术实现要素:

本申请实施例的目的是提供一种负载均衡方法及装置,以实现均衡分配数据,达到数据库负载均衡的目的。

本申请实施例提供一种负载均衡方法及装置是这样实现的:

一种负载均衡方法,所述方法包括:

获取待处理业务数据,为所述待处理业务数据设置存储标识;

根据设置的负载均衡规则确定所述存储标识的赋值;

基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。

一种负载均衡装置,所述装置包括:

数据获取模块,用于获取待处理业务数据;

第一设置模块,用于为所述待处理业务数据设置存储标识;

赋值模块,用于根据设置的负载均衡规则确定所述存储标识的赋值;

均衡处理模块,用于基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。

本申请实施例通过为获取的待处理业务数据设置存储标识,并利用结合了实际负载情况的负载均衡规则确定所述存储标识的赋值;基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。这样可以根据实际负载情况均衡分配数据,保证数据库负载均衡。与现有技术相比,有效改善了因数据入库规则单一导致的数据分布不均,数据库压力不一致的问题,实现了均衡分配数据,达到了数据库负载均衡的目的。

附图说明

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

图1是本申请提供的一种负载均衡方法的一种流程示意图;

图2是本申请提供的一种负载均衡方法的另一流程示意图;

图3是本申请提供的一种负载均衡的装置的一种示意图;

图4是本申请提供的一种负载均衡的装置的另一种示意图;

图5是本申请提供的一种负载均衡的装置的另一种示意图。

具体实施方式

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

以下以几个具体的例子详细说明本申请实施例的具体实现。

以下首先介绍本申请一种负载均衡的方法的实施例。图1是说明根据本申请某些实施例提供的负载均衡方法的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺 序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:

S110:获取待处理业务数据,为所述待处理业务数据设置存储标识。

在一些实施例中,可以获取待处理业务数据,为所述待处理业务数据设置存储标识。具体的,所述待处理业务数据可以包括业务处理过程中需要进行入库存储的数据。具体的,所述存储标识可以代表所述待处理业务数据与所述待处理业务数据存储位置之间的映射关系。本实施例中根据待处理业务数据的存储标识可以执行将所述待处理业务数据进行存储的操作。

在一个具体的实施例中,以微博消息通知系统为例,假设某微博账号用户发表了一条微博。相应的,所述微博需要广播通知给所述微博账号用户的粉丝;假设所述微博账号用户的粉丝数为1000,那么1000个粉丝就需要生成1000条通知记录,所述1000条通知记录可以作为业务处理过程中需要进行入库存储的数据。然后可以为所述微博设置存储标识store_ddl_flag。

S120:根据设置的负载均衡规则确定所述存储标识的赋值。

在一些实施例中,在步骤S110获取待处理业务数据之后,可以根据设置的负载均衡规则确定所述存储标识的赋值。所述存储标识的赋值可以包括根据所述设置的负载均衡规则设置的所述待处理业务数据的加载标识的赋值。

具体的,在一些实施例中,所述负载均衡规则可以包括根据数据库的数据负载情况将指定位置的业务数据迁移至预设数据库。相应的,所述根据设置的负载均衡规则确定所述存储标识的赋值可以包括:基于所述待处理业务数据迁移至预设数据库的存储地址设置所述存储标识的赋值。

具体的,在一些实施例中,所述负载均衡规则可以包括根据数据库的数据负载情况设置相应业务类型的业务数据的存储数据库。相应的,所述根据设置的负载均衡规则确定所述存储标识的赋值可以包括:获取所述待处理业务数据的业务类型,根据与所述待处理业务数据的业务类型相对应的存储数据库的地址设置所述存储标识的赋值。所述预设业务类型可以包括一个业务类型和/或多个业务类型。所述数据库的负载情况可以包括数据库中存储的业务数据的数据量信息,还可以包括所述数据库中存储的业务数据所属业务类型的自相关数据量属性。所述业务类型的自相关数据量属性可以包括所述业务类型的业务数据的数据量信息。在一个具体的实施例中,以微博消息通知系统为例,所述业务类型的自相关数据量属性可以包 括某一微博账号用户相关的业务数据的数据量信息。这里不同的微博账号用户对应着不同的业务类型,每个微博账号用户的通知记录等相关的业务数据的数据量对应着该微博账号用户的自相关数据量属性。

本实施例中,为所述待处理业务数据设置了相应的存储标识之后,可以根据设置的负载均衡规则确定所述存储标识的赋值。

S130:基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。

在一些实施例中,在步骤S120之后,可以基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。

图2是本申请提供的一种负载均衡方法的另一流程示意图。在一些实施例中,在步骤S130之后,如图2所示,所述方法还可以包括:

S140:为所述已处理业务数据设置加载标识,所述加载标识被设置成用于基于所述已处理业务数据的加载标识中的赋值加载所述已处理业务数据。

在一些实施例中,所述已处理业务数据在存储之后可以进行加载处理。相应的,可以为所述已处理业务数据设置加载标识,所述加载标识被设置成用于基于所述已处理业务数据的加载标识中的赋值加载所述已处理业务数据。具体的,所述加载标识可以为load_ddl_flag。

所述已处理业务数据的加载标识可以与所述待处理业务数据的存储标识相对应,代表所述已处理业务数据与所述已处理业务数据存储位置之间的映射关系。本实施例中根据已处理业务数据的加载标识可以执行将所述已处理业务数据进行加载的操作。在一些实施例中,所述待处理业务数据的加载标识的赋值可以与所述已处理业务数据的存储标识的赋值一致。此外,在一些实施例中,所述待处理业务数据的加载标识的赋值可以与所述已处理业务数据的存储标识的赋值不一致,但所述已处理业务数据加载标识的赋值所对应的负载均衡规则与所述待处理业务数据的存储标识的赋值所对应的负载均衡规则一致。

具体的,所述加载标识的赋值可以包括:根据所述设置的负载均衡规则设置的所述已处理业务数据的加载标识的赋值。具体的,例如在一个实施例中,若所述负载均衡规则包括:根据数据库的数据负载情况将指定位置的业务数据迁移至预设数据库时,相应的,所述根据所述设置的负载均衡规则设置的所述已处理业务数据的加载标识的赋值可以包括:基于所述已处理业务数据在迁移至的所述预设数据库的存储地址设置的所述加载标识的赋值。如上所述,若所述负载均衡规则包括:根据数据库的数据负载情况设置相应业务类型的业务数据的存储数据库时,相应的,所述根据所述设置的负载均衡规则设置的所述已处理业务数据的加 载标识的赋值包括:根据所述已处理业务数据存储至所述存储数据库的地址设置所述加载标识的赋值。

此外,以步骤S120中所述微博消息通知系统中B类型业务的业务数据负载均衡规则有变化的情况为例。当所述负载均衡规则变化时,所述B类型业务的业务数据的存储标识的赋值和加载标识的赋值均进行相应的调整。在这种负载均衡规则变换的过程中,可能会因为存储与加载之间有一定的时间延时,或存在数据存储完之后系统停机维护等原因,导致在B类型业务的新业务数据按照新的存储标识的赋值存储到相应数据库后,原来的业务数据(原来的通知记录)并没有加载完。那么数据加载过程可以包括基于原来的加载标识的赋值从相应的数据库加载原来的业务数据;在加载完原来的业务数据之后,可以切换调整后的加载标识的赋值,基于调整后的加载标识的赋值从相应的数据库加载新的业务数据。此外,所述数据加载过程还可以包括遍历B类型业务调整前后的加载标识的赋值,并分别基于调整前后的加载标识的赋值从相应的数据库加载业务数据。

在一些实施例中,在步骤S140之后,所述方法还可以包括:在所述设置的负载均衡规则发生更改时,相应的修改所述存储标识和/或加载标识的赋值,以使业务系统基于所述存储标识和/或加载标识修改后的赋值在所述更改后的负载均衡规则下进行业务数据的存储和/或加载。

所述业务系统可以包括利用所述负载均衡方法进行业务处理的系统服务器等。在实际应用中,随着业务的发展,数据库的负载情况可能发生变化,这时所述负载均衡规则可以根据具体的负载情况进行相应的调整。相应的,当负载均衡规则进行了相应的调整之后,就可重新进行负载均衡处理。当重新进行负载均衡时,可以根据所述负载均衡规则修改相应业务数据的存储标识的赋值。

在一个具体的实施例中,以微博消息通知系统为例,假设某一段时间内A、B、C三个微博账号用户分别代表三种不同类型的业务数据,且A用户有1000个粉丝,B用户有500个粉丝,C用户有2000个粉丝。假设A用户对应A类型业务,B用户对应B类型业务,C用户对应C类型业务,且A类型业务和B类型业务这两种业务类型的业务数据的存储标识的赋值一样。那么,可以假设A类型业务的业务数据和B类型业务的业务数据均存储在数据库中X中,C类型业务的业务数据存储在数据库Y中。相应的,当A、B、C三个用户发表了微博,A用户有1000个粉丝,A类型业务的业务数据可以包括1000条通知记录;B用户有500个粉丝,B类型业务的业务数据可以包括500条通知记录;C用户有2000个粉丝,C类型业务的业务数据可以包括2000条通知记录。相应的,数据库X中会存储1500条通知记录,数据库Y中会存储2000条通知记录。假设随着发展,A用户发展为大V用户,A用户 的粉丝数变为3000个。当进行新的业务请求(发布微博)时,数据库X中就可能需要存储3500条通知记录,数据库Y中可能需要存储2000条通知记录,这就导致数据库X和数据库Y间的数据分布不平衡。这时候可以根据数据库负载情况修改负载均衡规则,使数据库相对平衡。比如将B类型业务的业务数据的存储位置修改为数据库Y的位置,相应的,可以调整B类型业务的业务数据的存储标识的赋值。后续B类型业务有新的业务数据时,所述新的业务数据可以存储到数据库Y中。这样当A、B、C三个用户发表了微博之后,数据库X中可以存储3000条通知记录,数据库Y中可以存储2500条通知记录,重新实现了数据库的负载均衡。

由此可见,本申请一种负载均衡方法的实施例提供的技术方案通过为获取的待处理业务数据设置存储标识,并利用结合了实际负载情况的负载均衡规则确定所述存储标识的赋值;基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。相应的,后续可以为所述待处理业务数据设置加载标识,根据所述结合了实际负载情况的负载均衡规则确定所述加载标识的赋值。这样可以根据实际负载情况均衡分配数据,保证数据库负载均衡。与现有技术相比,有效改善了因数据入库规则单一导致的数据分布不均,数据库压力不一致的问题,实现了均衡分配数据,达到了数据库负载均衡的目的。

基于本申请所述的负载均衡方法,本申请提供一种负载均衡装置。以下介绍本申请一种负载均衡装置的实施例,图3是本申请一种负载均衡的装置的一种示意图,结合附图3,该装置300可以包括:

数据获取模块310,可以用于获取待处理业务数据。

第一设置模块320,可以用于为所述待处理业务数据设置存储标识。

赋值模块330,可以用于根据设置的负载均衡规则确定所述存储标识的赋值。

均衡处理模块340,可以用于基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。

在一个优选的实施例中,图4是本申请一种负载均衡的装置的另一种示意图,结合附图4,该装置300还可以包括:

第二设置模块350,可以用于为所述待处理业务数据设置加载标识,所述加载标识被设置成用于基于所述已处理业务数据的加载标识中的赋值加载所述已处理业务数据。

相应的,所述赋值模块还用于根据所述设置的负载均衡规则确定所述已处理业务数据的加载标识的赋值。

在一个优选的实施例中,所述负载均衡规则可以包括:

根据数据库的数据负载情况将指定位置的业务数据迁移至预设数据库;

相应的,所述赋值模块330根据设置的负载均衡规则确定所述存储标识的赋值可以包括:所述赋值模块330基于所述待处理业务数据迁移至预设数据库的存储地址设置所述存储标识的赋值,以及,

所述赋值模块330根据设置的负载均衡规则确定所述已处理业务数据的加载标识的赋值可以包括:所述赋值模块330基于所述已处理业务数据在迁移至所述预设数据库的存储地址设置所述加载标识的赋值。

在一个优选的实施例中,所述负载均衡规则可以包括:

根据数据库的数据负载情况设置相应业务类型的业务数据的存储数据库;

相应的,所述赋值模块330根据设置的负载均衡规则确定所述存储标识的赋值可以包括:所述赋值模块330获取所述待处理业务数据的业务类型,根据与所述待处理业务数据的业务类型相对应的存储数据库的地址设置所述存储标识的赋值,以及,

所述赋值模330块根据设置的负载均衡规则确定所述已处理业务数据的加载标识的赋值可以包括:所述赋值模块330根据所述已处理业务数据存储至所述存储数据库的地址设置所述加载标识的赋值。

图5是本申请提供的一种负载均衡的装置的另一种示意图。在一个优选的实施例中,如图5所示,所述装置300还可以包括:

赋值修改模块360,可以用于在所述设置的负载均衡规则发生更改时,相应的修改所述存储标识和/或加载标识的赋值,以使业务系统基于所述存储标识和/或加载标识修改后的赋值在所述更改后的负载均衡规则下进行业务数据的存储和/或加载。

本申请实施例所述负载均衡方法和所述负载均衡装置可以应用于数据处理的业务系统中,这样所述业务系统通过修改所述存储标识和/或加载标识的赋值就可以实现不停机、业务无感知的动态负载均衡,解决数据库分库分表方案下数据分布不均匀的问题。

由此可见,本申请一种负载均衡方法及装置的实施例提供的技术方案通过为获取的待处理业务数据设置存储标识,并利用结合了实际负载情况的负载均衡规则确定所述存储标识的赋值;基于所述存储标识的赋值将所述待处理业务数据存储到相应的存储位置,形成已处理业务数据。相应的,后续可以为所述待处理业务数据设置加载标识,根据所述结合了实际负载情况的负载均衡规则确定所述加载标识的赋值。这样可以根据实际负载情况均衡分配数据,保证数据库负载均衡。与现有技术相比,有效改善了因数据入库规则单一导致的数据分布不均,数据库压力不一致的问题,实现了均衡分配数据,达到了数据库负载均衡的目的。

尽管本申请内容中数据采集、处理的描述,但是,本申请并不局限于必须是完全标准或者所提及的数据处理应用环境的情况。本申请中各个实施例中所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些其他的框架中也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

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

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相 参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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