一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据发配方法、系统及装置与流程

2022-12-07 02:50:03 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种数据发配方法、系统及装置。


背景技术:

2.随着终端设备以及网络的广泛应用,在网络交易(如购物、充值)等场景中,网络平台、商家或银行等为了提高用户交易率、交易金额等,会向用户发放奖励权益(如折扣券、满减券等票券)。
3.用户在获取奖励权益时,一般是用户通过客户端向数据中心发送领取请求,然后由数据中心处理该领取请求,选择出领取请求对应的奖励权益,最后将奖励权益发送给该领取请求对应的客户端。目前,为了提升处理领取请求的效率、数据发放的效率,通过增加数据中心的方式来实现。
4.但是,在某一数据中心异常或票券发放完毕之后,用户需要跨数据中心,从其他数据中心中领取票券,影响了用户获取票券的实时性以及用户领取票券的效率。


技术实现要素:

5.本发明实施例提供一种数据分配方法、系统及装置,用于实现提高各数据中心中票券数量的均衡性、进而避免用户需要跨数据中心领取票券,提升用户领取票券的实时性以及用户领取票券的效率。
6.第一方面,本发明实施例提供一种数据分配方法,包括:
7.第一数据中心周期性的查询所述第一数据中心中第一剩余票券数量和第一发放票券速率,以及同步接收各第二数据中心发送的第二剩余票券数量以及第二发放票券速率;所述第一数据中心和所述各第二数据中心为同一系统中的数据中心;所述第一数据中心为所述系统中任一数据中心;
8.所述第一数据中心根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确定所述第一数据中心是否满足票券转移条件;
9.若所述第一数据中心满足票券转移条件,则针对任一第二数据中心,所述第一数据中心计算票券转移数量,根据所述票券转移数量向所述第二数据中心转移票券。
10.在上述技术方案中,第一数据中心为数据分配系统中任一数据中心;第二数据中心为数据分配系统中除第一数据中心之外的任一数据中心;也就是说,基于多个数据中心实现接收用户通过客户端发送的领取请求,并将领取请求对应的票券反馈至用户,以此保证票券分发的效率。
11.在实现票券分发的过程中,任一数据中心会周期性的查询自身的剩余票券数量和发放票券速率,然后将自身的剩余票券数量和发放票券速率发送至其他数据中心。以第一数据中心为例,第一数据中心会周期性的查询自身的第一剩余票券数量和第一发放票券速率,以及同步接收各第二数据中心发送的第二剩余票券数量以及第二发放票券速率;也就
是说,各数据中心之间是具备数据通信的。
12.且在确定第一数据中心满足票券转移条件时,计算票券转移数量,并基于票券转移数量向第二数据中心转移票券。也就是说,各数据中心之间的票券可以相互转移,以此提高各数据中心之间票券数量的均衡性,在票券全部分发完之前,用户只需要针对一个数据中心领取票券,因为各数据中心之间票券数量为均衡的,当该数据中心的票券全部分发完时,其他数据中心的票券几乎同时也会全部分发完,所以用户不需要从其他数据中心,以此避免用户跨数据中心,从其他数据中心中领取票券,提升用户领取票券的效率。
13.另外,各数据中心之间是周期性确定是否需要转移票券的,以此缩短各数据重心之间发放完票券的时刻,进一步的提高各数据中心之间票券数量的均衡性,提升用户领取票券的实时性。
14.可选的,所述第一数据中心在根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确定所述第一数据中心是否满足票券转移条件,包括:
15.所述第一数据中心若确定所述第一剩余票券数量大于第一阈值,且所述第一剩余票券数量大于第二阈值,则确定所述第一数据中心满足票券转移条件;所述第二阈值是根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率计算的;
16.所述第一数据中心若确定所述第一剩余票券数量不大于第一阈值,或所述第一剩余票券数量不大于第二阈值,则确定所述第一数据中心不满足票券转移条件。
17.可选的,根据下述公式(1)计算所述第二阈值;
[0018][0019]
其中,l为所述第二阈值;va为所述第一发放票券速率;vb为所述各第二数据中心的第二发放票券速率的和;na为所述第一剩余票券数量;nb为所述各第二数据中心的第二剩余票券数量的和;te为预设转移间隔。
[0020]
在上述技术方案中,第一阈值、第二阈值与数据中心是一一对应的关系。也就是说,不同数据中心的第一阈值和第二阈值可以能是不同的。
[0021]
若确定第一数据中心的剩余票券数量大于第一数据中心的第一阈值,则表示该第一数据中心中拥有足够多的票券,不会在短时间内发放完。
[0022]
第一数据中心的第二阈值表示第一数据中心在转移间隔期间的发券数量与第一数据中心在数据分配系统中的分券占比的和。第一数据中心的剩余票券数量大于第一数据中心的第二阈值,表示第一数据中心票券发放完的时刻晚于其他数据中心票券发放完的时刻。因此,在同时满足上述两个条件时,第一数据中心计算票券转移数量,并基于票券转移数量向第二数据中心转移票券。以此提高各数据中心之间票券数量的均衡性,避免用户跨数据中心,从其他数据中心中领取票券,提升了用户领取票券的实时性以及用户领取票券的效率。
[0023]
可选的,所述第一数据中心计算票券转移数量,包括:
[0024]
计算所述第二数据中心的第二发放票券速率与所述各第二数据中心的第二发放票券速率的和的比值;
[0025]
计算所述第一剩余票券数量与所述第一数据中心的票券分配数量的差值;所述第一数据中心的票券分配数量是根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率计算的;
[0026]
将所述比值和所述差值的乘积作为所述第二数据中心的票券转移数量。
[0027]
可选的,根据下述公式(2)计算所述第二数据中心的票券转移数量;
[0028][0029]
其中,m为所述第二数据中心的票券转移数量;v
b1
为所述第二数据中心的第二发放票券速率;va为所述第一发放票券速率;vb为所述各第二数据中心的第二发放票券速率的和;na为所述第一剩余票券数量;nb为所述各第二数据中心的第二剩余票券数量的和。
[0030]
在上述技术方案中,计算第二数据中心的第二发放票券速率与各第二数据中心的第二发放票券速率的和的比值,根据该比值计算向该第二数据中心转移票券的数量,以此保证各数据中心之间的均衡性,避免用户跨数据中心,从其他数据中心中领取票券,提升用户领取票券的实时性及用户领取票券的效率。
[0031]
可选的,所述方法还包括:
[0032]
所述第一数据中心在确定所诉第二数据中心异常时,根据所述第二数据中心的第二剩余票券数量、第二发放票券速率计算票券瓜分数量;
[0033]
基于所述票券瓜分数量,所述第一数据中心从所诉第二数据中心中拉取票券。
[0034]
可选的,根据下述公式(3)计算所述票券瓜分数量;
[0035][0036]
其中,c为所述票券瓜分数量;x为非异常的数据中心的数量;n
b1
为所述第二数据中心的第二剩余票券数量;v
b1
为所述第二数据中心的第二发放票券速率;ts为第一预设时间间隔;tc为第二预设时间间隔。
[0037]
上述技术方案中,在某一数据中心异常时,即无法发放票券时,则其他数据中心基于第二数据中心的第二剩余票券数量,瓜分第二数据中心的第二剩余票券数量,以此避免票券少发、缺发的情况,提升用户领取票券的安全性。
[0038]
第二方面,本发明实施例提供一种数据分配系统,包括多个数据中心;任一数据中心包括服务端、redis、和协调器;
[0039]
所述服务端用于接收客户端发送的领取请求,将所述领取请求对应的票券发放至所述客户端;
[0040]
所述redis用于确定出所述领取请求对应的票券;
[0041]
所述协调器用于跨数据中心传输数据;
[0042]
第一数据中心的redis用于周期性的查询所述第一数据中心中的第一剩余票券数量和第一发放票券速率,以及控制所述第一数据中心的协调器同步接收各第二数据中心中第二剩余票券数量以及第二发放票券速率;所述第一数据中心和所述各第二数据中心为所述数据分配系统中的数据中心;所述第一数据中心为所述数据分配系统中任一数据中心;
[0043]
针对任一第二数据中心,所述第一数据中心的redis根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确
定所述第一数据中心是否满足票券转移条件;
[0044]
若所述第一数据中心满足票券转移条件,则所述第一数据中心的redis计算票券转移数量,根据所述票券转移数量向所述第二数据中心转移票券。
[0045]
第三方面,本发明实施例还提供一种数据分配装置,包括:
[0046]
查询模块,用于周期性的查询第一数据中心中第一剩余票券数量和第一发放票券速率;所述第一数据中心为数据分配系统中任一数据中心;
[0047]
接收模块,用于周期性的接收各第二数据中心中第二剩余票券数量以及第二发放票券速率;所述各第二数据中心为所述数据分配系统中除所述第一数据中心之外的数据中心;
[0048]
处理模块,用于根据所述第一数据中心的第一剩余票券数量、第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确定所述第一数据中心是否满足票券转移条件;
[0049]
若所述第一数据中心满足票券转移条件,则针对任一第二数据中心,计算票券转移数量,基于所述票券转移数量,从所述第一数据中心向所述第二数据中心转移票券。
[0050]
第四方面,本发明实施例还提供一种计算机设备,包括:
[0051]
存储器,用于存储程序指令;
[0052]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述数据分配方法。
[0053]
第五方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述数据分配方法。
附图说明
[0054]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]
图1为本发明实施例提供的一种数据分配系统架构的示意图;
[0056]
图2为本发明实施例提供的一种票券分发方法的流程示意图;
[0057]
图3为本发明实施例提供的一种数据分配方法的流程示意图;
[0058]
图4为本发明实施例提供的一种数据分配装置的结构示意图。
具体实施方式
[0059]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0060]
目前,网络平台、商家或银行等为了提高用户交易率、交易金额等,会向用户发放奖励权益(如折扣券、满减券等票券)。
[0061]
其中,用户在获取奖励权益时,一般是用户通过客户端向数据中心发送领取请求,然后由数据中心处理该领取请求,选择出领取请求对应的奖励权益,最后将奖励权益发送给该领取请求对应的客户端。数据中心指的是一个或多个建筑物的设施,其中包含集中式计算基础设施,通常是服务器、存储和网络设备。
[0062]
在一种领取请求高并发的场景中,例如,票券的数量是限量的场景,或者领取票券的时间是限时的场景。会有大量的用户向数据中心请求票券,进而使数据中心在短时间内接收巨量的领取请求。
[0063]
为了提升处理领取请求的效率、数据发放的效率,一般是通过增加数据中心的方式来实现。目前的实现方法是多个数据中心从一个redis中获取票券。但是在分发票券时,各数据中心之间不具备数据通信,在某一个数据中心的票券发放完成之后,用户需要从其他数据中心领取票券。
[0064]
例如,数据中心a和数据中心b从redis中分别获取1000张票券,上海的用户从数据中心a中领取票券,北京的用户从数据中心b中领取票券;若数据中心a中的票券分发完,且数据中心b中的票券为分发,则上海的用户需要从数据中心b中领取票券。
[0065]
因此,用户从其他数据中心领取票券时,需要发生跨数据中心领取票券的情况,导致用户领取票券的实时性差,效率低。进一步会导致用户无法抢到票券,与不需要跨数据中心领取票券的用户相比,会发生先请求的用户未领取到票券,而后请求的用户成功领取到票券,影响了分发票券的实时性和公平性。
[0066]
因此,现亟需一种数据分配方法,用于保障各数据中心中票券数量的均衡性,进而避免在票券发放完成之前,用户需要跨数据中心领取票券,提升用户领取票券的实时性以及用户领取票券的效率。
[0067]
图1示例性的示出了本发明实施例所适用的一种数据分配系统架构的示意图,该系统架构包括数据中心a、数据中心b、数据中心c以及数据库;需要说明的是,在此仅以数据中心的数量为3做示例,并不对数据中心的数量做限定。任一数据中心中包括服务端、redis、协调器和流水消费者。
[0068]
其中,服务端用于接收客户端发送的领取请求,将redis查询出的领取请求对应的票券通过服务端发放至客户端。服务端可以为app(application,应用程序)对应的服务端,且任一数据中心的服务端的数量在此不进行限定,可以为2个、3个等。
[0069]
redis用于确定出领取请求对应的票券。
[0070]
协调器用于跨数据中心传输数据。
[0071]
流水消费者用于将票券领取记录写入数据库。
[0072]
其中,redis、协调器、流水消费者与数据中心是一一对应的。
[0073]
数据库用于记录数据中心分发票券的流水信息。
[0074]
在一些可实施的方式中,以系统架构中数据中心a作为第一数据中心,同理,也可以将数据中心b或数据中心c作为第一数据中心,在此将数据中心a作为第一数据中心仅作为示例进行说明。若数据中心a作为第一数据中心,则数据中心b和数据中心c作为第二数据中心。
[0075]
数据中心a的redis用于周期性的查询自身的第一剩余票券数量和第一发放票券速率,并将第一剩余票券数量和第一发放票券速率通过数据中心a的协调器发送至其他数
据中心(即数据中心b和数据中心c)。
[0076]
基于上述周期,同步接收数据中心b和数据中心c通过自身协调器发送的第二剩余票券数量以及第二发放票券速率。
[0077]
然后针对任一第二数据中心,以数据中心b为例,数据中心a的redis在根据自身的第一剩余票券数量、第一发放票券速率和各第二数据中心的第二剩余票券数量、第二发放票券速率确定数据中心a满足票券转移条件时,计算出需要转移给数据中心b的票券转移数量。
[0078]
最后基于票券转移数量,将自身的票券转移至数据中心b。
[0079]
需要说明的是,上述图1所示的系统架构仅是一种示例,本发明实施例对此不做限定。
[0080]
基于上述描述,在一些可实施的方式中,本发明实施例提供的一种数据分配方法可用于高并发请求票券的场景中。为了更好的阐述本技术的技术方案,图2为本技术实施例示例性示出的一种票券分发方法的流程示意图,针对任一数据中心均可以实施如图2所示的票券分发方法。如图2所示,该流程具体包括:
[0081]
步骤210,接收领取请求。
[0082]
数据中心的服务端接收用户基于客户端,通过指定协议,如http(hyper text transfer protocol,超文本传输协议)发送的领取请求;其中,领取请求用于领取票券,包括请求参数;请求参数包括需要领取票券的信息(如金额、折扣值等)、客户端信息(如客户端用户名等)。
[0083]
步骤220,判断请求参数是否通过;若是,则执行步骤230,否则执行步骤270。
[0084]
数据中心接收领取请求之后,对该领取请求的请求参数进行校验,如验证客户端用户名的合法性等。
[0085]
步骤230,判断redis中是否有券;若是,则执行步骤240,否则执行步骤270。
[0086]
数据中心基于请求参数中所要领取的票券,查询redis的标志符,通过redis的标志符确定redis中是否有剩余未发放的票券。
[0087]
步骤240,判断redis取券是否成功;若是,则执行步骤250,否则执行步骤270。
[0088]
数据中心通过redis取出请求参数中所要领取的票券,若发生取出超时、取出异常、未查询到请求参数中所要领取的票券等原因,则确定redis取券失败。
[0089]
步骤250,判断服务端是否发券;若是,则执行步骤260,否则执行步骤270。
[0090]
数据中心的服务端在针对redis取出的请求参数中所要领取的票券,通过入账服务入账成功,且通过查账服务查账成功之后,将票券分发至用户;
[0091]
若数据中心的服务端在针对redis取出的请求参数中所要领取的票券,通过入账服务入账失败(如超时等原因),或通过查账服务查账失败,则将票券退回redis。
[0092]
步骤260,记录流水,返回成功。
[0093]
将票券分发记录写入数据库,并向客户端返回票券分发成功(即票券领取成功)的信息。
[0094]
步骤270,返回失败。
[0095]
向客户端返回票券分发失败(即票券领取失败)的信息。
[0096]
基于上述描述,图3示例性的示出了本发明实施例提供的一种数据分配方法的流
程示意图,该流程可由数据分配装置执行。其中,本技术提供的数据分配方法可用于上述票券分发的过程中,以此提高各数据中心之间票券数量的均衡性,提升用户领取票券的实时性。在票券分发完之前,避免用户跨数据中心,从其他数据中心中领取票券,提升用户领取票券的效率。
[0097]
如图3所示,该流程具体包括:
[0098]
步骤310,第一数据中心周期性的查询所述第一数据中心中第一剩余票券数量和第一发放票券速率,以及同步接收各第二数据中心发送的第二剩余票券数量以及第二发放票券速率。
[0099]
基于上述图1可知,第一数据中心和各第二数据中心属于同一数据分配系统;其中,第一数据中心为该数据分配系统中任一数据中心(如数据中心a);第二数据中心为该数据分配系统中除所第一数据中心之外的任一数据中心(如数据中心b、数据中心c)。即第一数据中心和第二数据中心为数据发配系统中不相同的任一数据中心。
[0100]
第一数据中心和各第二数据中心用于接收客户端发送的领取请求,确定出领取请求对应的票券,并将票券发放至客户端。其中,第一数据中心和各第二数据中心可以是设置在不同的地方。例如,数据中心a设置在上海,数据中心b设置在北京,数据中心c设置在深圳。
[0101]
为了提升用户领取票券的效率,一般是基于用户所在地址来向对应的数据中心发送领取请求。例如,所在上海的用户在领取票券时,会向数据中心a发送领券请求,所在北京的用户在领取票券时,会向数据中心b发送领券请求,所在深圳的用户在领取票券时,会向数据中心c发送领券请求。
[0102]
但是,各地方的用户人数、领取票券的需求等信息不同,各数据中心分发票券的速率也不同,导致同一时刻各数据中心剩余票券数量也不相同。因此,为了保证在各票券发放完之前,所在上海的用户可以一直在数据中心a中领取票券,不需要跨数据中心,从数据中心b或数据中心c中领取票券,需要保障各数据中心的均衡性,理想状态下是各数据中心中的票券数量始终一致,各数据中心的票券在同一时间发放完毕。
[0103]
在一种可实施的方式中,任一数据中心根据预设周期查询自身的剩余票券数量和发放票券速率,并将自身的剩余票券数量和发放票券速率通过协调器发送至其他数据中心。因此针对任一数据中心,在根据预设周期查询,并发送自身的剩余票券数量和发放票券速率的同时,也会同步接收其他数据中心发送的剩余票券数量和发放票券速率。也就是说,任一数据中心会周期性的知悉自身的剩余票券数量和发放票券速率,以及其他数据中心的剩余票券数量和发放票券速率。其中,预设周期可以是根据经验预设的值,在此不作具体限定。如预设周期为20ms、30ms等。
[0104]
步骤320,针对任一第二数据中心,所述第一数据中心根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确定所述第一数据中心是否满足票券转移条件。
[0105]
其中,第一数据中心为数据分配系统中的任一数据中心。基于上述图1进行举例,数据中心a会查询自身的剩余票券数量、发放票券速率;同理,数据中心b也会查询自身的剩余票券数量、发放票券速率;数据中心c也会查询自身的剩余票券数量、发放票券速率。
[0106]
任一数据中心查询自身的剩余票券数量和发放票券速率之后,将自身的剩余票券
数量和发放票券速率发送至其他数据中心。以此保证其他数据中心接收自身的剩余票券数量和发放票券速率。
[0107]
也就是说,任一数据中心均会作为第一数据中心,查询自身的剩余票券数量、发放票券速率,接收其他数据中心(即第二数据中心)的剩余票券数量、发放票券速率。
[0108]
第一数据中心满足票券转移条件时,表示第一数据中心需要向第二数据中心转移票券。在一些实施的方式中,以上述图1为例,针对数据中心b和数据中心c,数据中心a满足票券转移条件时,表示数据中心a需要向数据中心b和数据中心c转移票券。
[0109]
步骤330,若所述第一数据中心满足票券转移条件,则针对任一第二数据中心,所述第一数据中心计算票券转移数量,根据所述票券转移数量向所述第二数据中心转移票券。
[0110]
在第一数据中心满足票券转移条件时,针对某一第二数据中心,根据自身的发放票券速率、剩余票券数量和各第二数据中心的发放票券速率、剩余票券数量计算需要向该第二数据中心转移的票券数量,进而保证各数据中心之间的票券可以同时发放完成。
[0111]
在步骤320中,第一数据中心若确定第一剩余票券数量大于第一阈值,且第一剩余票券数量大于第二阈值,则确定第一数据中心满足票券转移条件。
[0112]
其中,第一阈值是可以根据经验预设的值,如第一阈值为1000、500等。第一阈值可以是与数据中心是对应的关系;例如数据中心a的第一阈值为1000,数据中心b的第一阈值为800。在一些可实施的方式中,各数据中心的第一阈值是相同的。如各数据中心的第一阈值均为1000。
[0113]
第二阈值是根据第一剩余票券数量、第一发放票券速率和各第二数据中心的第二剩余票券数量、第二发放票券速率计算的。
[0114]
进一步的,根据下述公式(1)计算第二阈值:
[0115][0116]
其中,l为第二阈值;va为第一发放票券速率;vb为各第二数据中心的第二发放票券速率的和;na为第一剩余票券数量;nb为各第二数据中心的第二剩余票券数量的和;te为预设转移间隔。预设转移间隔可以是根据经验预设的值,如预设转移间隔为0.2s、0.15s等。用于表示对各数据中心重新分配票券的时间间隔。
[0117]
需要说明的是,第二阈值与数据中心是对应的关系,即各数据中心是基于预设周期实时计算的第二阈值,各数据中心的第二阈值一般是不同的。
[0118]
以图1进行举例,数据中心a为第一数据中心,数据中心b和数据中心c为第二数据中心。数据中心a的剩余票券数量为na,数据中心a的发放票券速率为va;数据中心b的剩余票券数量为n
b1
,数据中心b的发放票券速率为v
b1
;数据中心c的剩余票券数量为n
c1
,数据中心c的发放票券速率为v
c1
;以确定数据中心a用于向数据中心b转移票券的票券转移条件是否满足为例,则上述公式(1)变形为下述公式(1.1):
[0119][0120]
假设,na=1500,n
b1
=900,n
c1
=1200,va=1000,v
b1
=1100,v
c1
=900,te=0.2,则
第一阈值为1000,la表示数据中心a的第二阈值。也就是说,若数据中心a确定自身的剩余票券数量大于1000,且自身的剩余票券数量大于1400,则满足票券转移条件。
[0121]
同理,数据中心c也会周期性的查询自身的剩余票券数量和发放票券速率,并同步接收数据中心a和数据中心b的剩余票券数量、发放票券速率,计算数据中心c对应的第二阈值。
[0122]
然后,数据中心c若确定自身的剩余票券数量大于1000,且自身的剩余票券数量大于数据中心c对应的第二阈值,则数据中心c也满足票券转移条件。
[0123]
在一些可实施的方式中,第一数据中心若确定第一剩余票券数量不大于第一阈值,或第一剩余票券数量不大于第二阈值,则确定第一数据中心不满足票券转移条件。
[0124]
第一阈值和第二阈值可以变相的表现出第一数据中心发完最后一张票券的时刻与各第二数据中心发完最后一张票券的时刻之间的时间差。第一数据中心若满足票券转移条件,则表示该时间差较大,通过向第二数据中心转移票券,缩短该时间差,以此实现在较小时间差内,第一数据中心和第二数据中心将各自的票券全部发放完成,以此避免用户跨数据中心领取票券。
[0125]
在步骤330中,针对任一第二数据中心,第一数据中心计算该第二数据中心的第二发放票券速率与各第二数据中心的第二发放票券速率的和的比值。
[0126]
基于上述描述进行举例,第一数据中心为数据中心a,第二数据中心为数据中心b和数据中心c。假设,数据中心b的发放票券速率v
b1
=1100,数据中心b的发放票券速率v
c1
=900;则该比值为11/20。
[0127]
然后,第一数据中心根据第一剩余票券数量、第一发放票券速率和各第二数据中心的第二剩余票券数量、第二发放票券速率计算第一数据中心与第二数据中心之间的票券分配差值。
[0128]
最后,第一数据中心将比值和票券分配差值的乘积作为第二数据中心的票券转移数量。
[0129]
进一步的,根据下述公式(2)计算第二数据中心的票券转移数量:
[0130][0131]
其中,为第二数据中心的第二发放票券速率与各第二数据中心的第二发放票券速率的和的比值;为第一数据中心与第二数据中心之间的票券分配差值;m为第二数据中心的票券转移数量;v
b1
为第二数据中心的第二发放票券速率;va为第一发放票券速率;vb为各第二数据中心的第二发放票券速率的和;na为第一剩余票券数量;nb为各第二数据中心的第二剩余票券数量的和。
[0132]
通过比值和票券分配差值计算票券转移数量,变相的缩短第一数据中心发完最后一张票券的时刻与第二数据中心发完最后一张票券的时刻之间的时间差,以此实现在较小时间差内,第一数据中心和第二数据中心将各自的票券全部发放完成,以此避免用户跨数
据中心领取票券。
[0133]
以图1进行举例,数据中心a为第一数据中心,数据中心b和数据中心c为第二数据中心。数据中心a的剩余票券数量为na,数据中心a的发放票券速率为va;数据中心b的剩余票券数量为n
b1
,数据中心b的发放票券速率为v
b1
;数据中心c的剩余票券数量为n
c1
,数据中心c的发放票券速率为v
c1
;以计算数据中心a向数据中心b的票券转移数量为例,则上述公式(2)变形为下述公式(2.1):
[0134][0135]
假设,na=1500,n
b1
=900,n
c1
=1200,va=1000,v
b1
=1100,v
c1
=900,te=0.2,则也就是说,数据中心a需要向数据中心b转移165张票券。
[0136]
同理,数据中心a也会基于上述公式(2)计算需要向数据中心c转移票券数量。针对不同的第二数据中心,对应的计算需要向第二数据中心转移的票券数量,以此缩短第一数据中心发完最后一张票券的时刻与第二数据中心发完最后一张票券的时刻之间的时间差,以此提高各数据中心的剩余票券数量的均衡性,实现在较小时间差内,第一数据中心和第二数据中心将各自的票券全部发放完成,避免用户跨数据中心领取票券。
[0137]
在一种可实施的方式中,第一数据中心在确定第二数据中心异常时,根据第二数据中心的第二剩余票券数量、第二发放票券速率计算票券瓜分数量;其中,票券瓜分数量与数据中心是对应的关系,表示正常的数据中心从异常的数据中心中瓜分票券的数量;数据中心异常表示数据中心无法成功处理领取请求,进而无法完成票券分发任务。
[0138]
第一数据中心基于票券瓜分数量,从第二数据中心中拉取票券。
[0139]
进一步的,根据下述公式(3)计算票券瓜分数量:
[0140][0141]
其中,c为票券瓜分数量;x为非异常的数据中心的数量;n
b1
为第二数据中心的第二剩余票券数量;v
b1
为第二数据中心的第二发放票券速率;ts为第一预设时间间隔;tc为第二预设时间间隔。ts和tc可以是根据经验预设的值;例如ts为20ms、25ms等,tc为30ms、35ms等。
[0142]
以图1进行举例,数据中心a为第一数据中心,数据中心b和数据中心c为第二数据中心。数据中心a的剩余票券数量为na,数据中心a的发放票券速率为va;数据中心b的剩余票券数量为n
b1
,数据中心b的发放票券速率为v
b1
;数据中心c的剩余票券数量为n
c1
,数据中心c的发放票券速率为v
c1
;以数据中心b异常,数据中心a从数据中心b瓜分票券为例,则上述公式(3)变形为下述公式(3.1):
[0143][0144]
因为非异常的数据中心包括数据中心a和数据中心c,因此x=2。假设,n
b1
=900,v
b1
=1100,ts=0.2,tc=0.3,则也就是说,若数据中心a需要从数据中心b瓜分的票券瓜分数量为350张。同理,数据中心c也会计算从数据中心b瓜分的票券瓜分数量。
[0145]
在一些实施方式中,非异常的数据中心均查询到异常数据中心的剩余票券数量和发放票券速率,通过择优选值,计算非异常的数据中心从异常数据中心瓜分的票券瓜分数量。
[0146]
以图1进行举例,数据中心a为第一数据中心,数据中心b和数据中心c为第二数据中心。数据中心a的剩余票券数量为na,数据中心a的发放票券速率为va;数据中心b的剩余票券数量为n
b1
,数据中心b的发放票券速率为v
b1
;数据中心c的剩余票券数量为n
c1
,数据中心c的发放票券速率为v
c1
;以数据中心b异常,数据中心a从数据中心b瓜分票券为例,则上述公式(3)变形为下述公式(3.2):
[0147][0148]
其中,ca为数据中心a的票券瓜分数量;x为2;n
b1
为数据中心a接收数据中心b发送的剩余票券数量;n
b2
为数据中心c接收数据中心b发送的剩余票券数量;min(n
b1
,n
b2
)表示从(n
b1
,n
b2
)中取最小值;v
b1
为数据中心a接收数据中心b发送的发放票券速率;v
b2
为数据中心c接收数据中心b发送的发放票券速率;ts为第一预设时间间隔;tc为第二预设时间间隔。
[0149]
基于上述公式(3.2)可知,各数据中心接收异常数据中心发送的剩余票券数量和发放票券速率有可能不同,为了防止票券超发的情况,公式(3.2)中被减数取最小值,减数取最大值。
[0150]
由以上技术方案可知,票券分发过程中,数据分配系统中任一数据中心会通过协调器周期性的查询自身以及其他数据中心的剩余票券数量和发放票券速率,实现各数据中心之间数据通信。
[0151]
然后通过自身以及其他数据中心的剩余票券数量和发放票券速率确定自身是否需要向其他数据中心转移票券。在需要时,计算出需要转移票券的数量,进而基于数量转移票券,以此提高各数据中心之间票券数量的均衡性,缩短各数据中心发完最后一张票券的时间差。进而保证在较小时间差内,各数据中心将各自的票券全部发放完,避免用户数据中心领取票券,提升用户领取票券的效率和实时性。
[0152]
基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种数据分配装置的结构示意图,该装置可以执行数据分配方法的流程。
[0153]
如图4所示,该装置具体包括:
[0154]
查询模块410,用于周期性的查询第一数据中心中第一剩余票券数量和第一发放票券速率;所述第一数据中心为数据分配系统中任一数据中心;
[0155]
接收模块420,用于周期性的接收各第二数据中心中第二剩余票券数量以及第二发放票券速率;所述各第二数据中心为所述数据分配系统中除所述第一数据中心之外的数据中心;
[0156]
处理模块430,用于根据所述第一数据中心的第一剩余票券数量、第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率确定所述第一数据中心是否满足票券转移条件;
[0157]
若所述第一数据中心满足票券转移条件,则针对任一第二数据中心,计算票券转移数量,基于所述票券转移数量,从所述第一数据中心向所述第二数据中心转移票券。
[0158]
可选的,所述处理模块430具体用于:
[0159]
若确定所述第一剩余票券数量大于第一阈值,且所述第一剩余票券数量大于第二阈值,则确定所述第一数据中心满足票券转移条件;所述第二阈值是根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率计算的;
[0160]
若确定所述第一剩余票券数量不大于第一阈值,或所述第一剩余票券数量不大于第二阈值,则确定所述第一数据中心不满足票券转移条件。
[0161]
可选的,所述处理模块430具体用于:
[0162]
根据下述公式(1)计算所述第二阈值;
[0163][0164]
其中,l为所述第二阈值;va为所述第一发放票券速率;vb为所述各第二数据中心的第二发放票券速率的和;na为所述第一剩余票券数量;nb为所述各第二数据中心的第二剩余票券数量的和;te为预设转移间隔。
[0165]
可选的,所述处理模块430具体用于:
[0166]
计算所述第二数据中心的第二发放票券速率与所述各第二数据中心的第二发放票券速率的和的比值;
[0167]
根据所述第一剩余票券数量、所述第一发放票券速率和所述各第二数据中心的第二剩余票券数量、第二发放票券速率计算所述第一数据中心与所述第二数据中心之间的票券分配差值;
[0168]
将所述比值和所述票券分配差值的乘积作为所述第一数据中心向所述第二数据中心转移的票券转移数量。
[0169]
可选的,所述处理模块430具体用于:
[0170]
根据下述公式(2)计算所述第二数据中心的票券转移数量;
[0171][0172]
其中,m为所述第二数据中心的票券转移数量;v
b1
为所述第二数据中心的第二发放票券速率;va为所述第一发放票券速率;vb为所述各第二数据中心的第二发放票券速率的和;na为所述第一剩余票券数量;nb为所述各第二数据中心的第二剩余票券数量的和。
[0173]
可选的,所述处理模块430还用于:
[0174]
在确定所诉第二数据中心异常时,根据所述第二数据中心的第二剩余票券数量、第二发放票券速率计算票券瓜分数量;
[0175]
基于所述票券瓜分数量,从所述第二数据中心中拉取票券。
[0176]
可选的,所述处理模块430具体用于:
[0177]
根据下述公式(3)计算所述票券瓜分数量;
[0178][0179]
其中,c为所述票券瓜分数量;x为非异常的数据中心的数量;n
b1
为所述第二数据中心的第二剩余票券数量;v
b1
为所述第二数据中心的第二发放票券速率;ts为第一预设时间间隔;tc为第二预设时间间隔。
[0180]
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
[0181]
存储器,用于存储程序指令;
[0182]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述数据分配方法。
[0183]
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述数据分配方法。
[0184]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0185]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0186]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0187]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0188]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献