CN109600415B - 从多个源服务器获取目标数据的方法、装置和计算机设备 - Google Patents

从多个源服务器获取目标数据的方法、装置和计算机设备 Download PDF

Info

Publication number
CN109600415B
CN109600415B CN201811237456.4A CN201811237456A CN109600415B CN 109600415 B CN109600415 B CN 109600415B CN 201811237456 A CN201811237456 A CN 201811237456A CN 109600415 B CN109600415 B CN 109600415B
Authority
CN
China
Prior art keywords
target data
response time
source server
average response
data
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.)
Active
Application number
CN201811237456.4A
Other languages
English (en)
Other versions
CN109600415A (zh
Inventor
唐应泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811237456.4A priority Critical patent/CN109600415B/zh
Publication of CN109600415A publication Critical patent/CN109600415A/zh
Application granted granted Critical
Publication of CN109600415B publication Critical patent/CN109600415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种从多个源服务器获取目标数据的方法、装置和计算机设备,涉及云存储领域,该方法包括:获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;确定拥有所述目标数据的源服务器;获取每个所述源服务器历史上对数据获取请求的平均响应时间;基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。该方法提高了从多个源服务器获取目标数据的效率。

Description

从多个源服务器获取目标数据的方法、装置和计算机设备
技术领域
本发明涉及云存储领域,特别是涉及从多个源服务器获取目标数据的方法、装置和计算机设备。
背景技术
在互联网技术飞速发展的如今,人们每天都要在互联网上进行着诸如查阅资料、观看视频、发送邮件、线上支付等各种活动。在这众多活动之中,相当大部分的用户都在使用网络进行着对各种数据的获取请求,查阅资料、观看视频、下载文件等都在向服务器请求对应的数据。而这些庞大的数据并不会只存储在一个源服务器中,一般情况下,是分散在多个源服务器中。因此,如何尽量高效地完成从多个源服务器对目标数据的获取拥有着重要的意义。
现有的技术中,从多个源服务器获取目标数据采用的是依次向源服务器请求获取目标数据的方法,不分主次,获取数据的速度受到各个源服务器自身资源存储、信息处理速度的影响,效率低下。
发明内容
基于此,为解决相关技术中如何从技术层面上更加高效地从多个源服务器获取目标数据所面临的技术问题,本发明提供了一种从多个源服务器获取目标数据的方法、装置和计算机设备。
第一方面,提供了一种从多个源服务器获取目标数据的方法,包括:
获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;
确定拥有所述目标数据的源服务器;
获取每个所述源服务器历史上对数据获取请求的平均响应时间;
基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;
基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。
在本公开的一示例性实施例中,所述获取请求中还具有目标数据的类型,确定拥有所述目标数据的源服务器包括:根据获取请求中的目标数据的类型,查找目标数据的类型与源服务器对照表,确定拥有所述目标数据的源服务器。
在本公开的一示例性实施例中,获取每个所述源服务器历史上对数据获取请求的平均响应时间,包括:将当前时间点前预定时间段内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。
在本公开的一示例性实施例中,获取每个所述源服务器历史上对数据获取请求的平均响应时间,包括:将当前时间点所属时间周期内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。
在本公开的一示例性实施例中,基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的所述部分目标数据的大小,包括:
确定所述多个源服务器中所述平均响应时间小于或等于预定平均响应时间阈值的源服务器数目M1;
确定所述多个源服务器中所述平均响应时间大于预定平均响应时间阈值的源服务器数目M2;
获取预设的相对比例值P,所述相对比例值P为向每个平均响应时间大于预定平均响应时间阈值的源服务器分配的部分目标数据与向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的部分目标数据的预定比例值;
确定向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的目标数据比例值X,其中X满足X*M1+X*P*M2=1;
设所述目标数据的大小为Q,将X*Q的值确定为向每个所述平均响应时间小于或等于预定平均响应时间阈值的源服务器请求的部分目标数据的大小;
将X*P*Q的值确定为向每个所述平均响应时间大于预定平均响应时间阈值的源服务器请求的部分目标数据的大小。
在本公开的一示例性实施例中,向每个所述源服务器发送所述部分目标数据的请求,包括:
对每个所述源服务器,使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间;
如果所述实时平均响应时间大于预设实时平均响应时间阈值,停止向该所述源服务器发送获取所述部分目标数据的请求。
在本公开的一示例性实施例中,使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间,包括:
基于接收到所述源服务器对获取请求的响应的先后顺序,将对应的所述源服务器对所述目标数据请求的响应时间作为一个队列成员,依照后接收的排在后面的方式,构建为一数据队列;
确定所述滑动窗口的窗口长度,每单位长度的所述滑动窗口用于在所述数据队列上读取一个所述队列成员;
当所述数据队列的长度等于所述窗口长度时,使用所述滑动窗口读取所有所述队列成员,每次新增一个队列成员,所述滑动窗口沿着所述数据队列后移一个单位长度,并读取所述滑动窗口内所有所述队列成员;
基于所述滑动窗口内的所有所述队列成员,确定滑动窗口内队列成员的平均值,即所述源服务器对获取请求的实时平均响应时间。
根据本公开的第二方面,提供了一种从多个源服务器获取目标数据的装置,包括:
第一获取模块,用于获取用户对目标数据的获取请求;
确定模块,用于确定拥有所述目标数据的源服务器;
第二获取模块,用于获取每个所述源服务器历史上对数据获取请求的平均响应时间;
分配模块,用于向每个所述源服务器分配部分目标数据;
发送模块,用于向每个源服务器发送所述部分目标数据的请求。
根据本公开的第三方面,提供了一种从多个源服务器获取目标数据的电子设备,包括:
存储器,配置为存储可执行指令;
处理器,配置为执行存储器中存储的可执行指令,以实现以上所述的方法。
根据本公开的第四方面,提供一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机指令被计算机执行时,使计算机执行以上所述的方法。
与传统技术中从多个源服务器获取目标数据是依次向源服务器发送获取请求相比,本公开的实施例通过根据各个源服务器历史上对数据获取请求的平均响应时间,为所述各个源服务器分配不同比例的部分目标数据的请求,使得向所述各个源服务器发送的获取请求与其自身对数据获取请求的响应速度相匹配,提高了从多个源服务器获取目标数据的效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1示出根据本公开一示例实施方式的从多个源服务器获取目标数据的流程图。
图2示出根据本公开一示例实施方式的从多个源服务器获取目标数据的装置的方框图。
图3示出根据本公开一示例实施方式的确定向每个所述源服务器分配的部分目标数据的大小的详细流程图。
图4示出根据本公开一示例实施方式的从多个源服务器获取目标数据的流程图。
图5示出根据本公开一示例实施方式的使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间的详细流程图。
图6示出根据本公开一示例实施方式的从多个源服务器获取目标数据的系统架构图。
图7示出根据本公开一示例实施方式的从多个源服务器获取目标数据的电子设备图。
图8示出根据本公开一示例实施方式的从多个源服务器获取目标数据的计算机可读存储介质图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本公开的目的在于从技术方面从多个源服务器获取目标数据,提供获取目标数据的效率。根据本公开一个实施例的从多个源服务器获取目标数据的方法,包括:获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;确定拥有所述目标数据的源服务器;获取每个所述源服务器历史上对数据获取请求的平均响应时间;基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。与传统技术中从多个源服务器获取目标数据是依次向源服务器发送获取请求相比,本公开的实施例通过根据各个源服务器历史上对数据获取请求的平均响应时间,为所述各个源服务器分配不同比例的部分目标数据的请求,使得向所述各个源服务器发送的获取请求与其自身对数据获取请求的响应速度相匹配,提高了从多个源服务器获取目标数据的效率。
图1示出根据本公开一示例实施方式的从多个源服务器获取目标数据的流程图:
步骤S100:获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;
步骤S110:确定拥有所述目标数据的源服务器;
步骤S120:获取每个所述源服务器历史上对数据获取请求的平均响应时间;
步骤S130:基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;
步骤S140:基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。
下面,将结合附图对本示例实施方式中上述从多个源服务器获取目标数据的各步骤进行详细的解释以及说明。
在步骤S100中,获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小。
目标数据是指用户向服务器请求获取的各种数据。
通过获取用户对目标数据的获取请求,使得服务器能够依照所述获取请求的内容确定要调用数据的大小。
在一实施例中,用户向服务器发送对目标数据的获取请求,所述获取请求中具有目标数据的大小。例如:用户向服务器发送的获取请求为“获取总大小为1GB的数据”。
在步骤S110中,确定拥有所述目标数据的源服务器。
源服务器是指拥有可被调用数据的服务器。
通过确定拥有所述目标数据的源服务器,保证了从所述源服务器中能够确实获取所述目标数据,避免了向没有所述目标数据的源服务器进行请求,节省了请求所用的时间。
在一实施例中,所述获取请求中还具有目标数据的类型,根据获取请求中的目标数据的类型,查找目标数据的类型与源服务器对照表,确定拥有所述目标数据的源服务器。源服务器对照表是指包含源服务器所拥有数据类型的表。例如:用户向服务器发送的获取请求为“获取总大小为1GB,有关日用品消费的数据”。响应于接收到该获取请求,服务器查找源服务器对照表,将其中包含有“日用品消费”这一类别的源服务器确定为待从中获取所述目标数据的源服务器。
在步骤S120中,获取每个所述源服务器历史上对数据获取请求的平均响应时间。
对数据获取请求的平均响应时间是指对每次接收到获取请求,从源服务器接收到获取请求开始到源服务器发送对应的数据这一过程所用时间的平均值。
通过这种方法,达到了以所述平均响应时间为标准来反映各个所述源服务器对获取请求响应速度快慢的目的。
在一实施例中,将当前时间点前预定时间段内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。例如:将当前时间前24小时内源服务器对数据获取请求的平均响应时间确定为所述源服务器对数据获取请求的平均响应时间。对一数据获取请求,源服务器在接收到数据获取请求时,在日志中记录接收到该数据获取请求的时间点为T1;源服务器对该接收到的数据获取请求作出应答时,在日志中记录该应答的时间点为T2,将T2减去T1,得到该请求的响应时间。用同样的方式,获取当前时间点前24小时内源服务器的所有数据获取请求,统计出各自的响应时间,计算出平均值,即为所述源服务器对数据获取请求的平均响应时间。
在一实施例中,将当前时间点所属时间周期内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。例如,将一天划分为0:00-6:00,6:00-12:00,12:00-18:00,18:00-24:00这4个时间周期。对一数据获取请求,源服务器在接收到数据获取请求时,在日志中记录接收到该数据获取请求的时间点为T1;源服务器对该接收到的数据获取请求作出应答时,在日志中记录该应答的时间点为T2,将T2减去T1,得到该请求的响应时间。当前时间点为10:21,则用同样的方式,获取6:00-10:21这段时间内源服务器的所有数据获取请求,统计出各自的响应时间,计算出平均值,即为所述源服务器对数据获取请求的平均响应时间。
在步骤S130中,基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小。
在一实施例中,如图3所示,步骤S130包括:
步骤S1301:确定所述多个源服务器中所述平均响应时间小于或等于预定平均响应时间阈值的源服务器数目M1;
步骤S1302:确定所述多个源服务器中所述平均响应时间大于预定平均响应时间阈值的源服务器数目M2;
步骤S1303:获取预设的相对比例值P,所述相对比例值P为向每个平均响应时间大于预定平均响应时间阈值的源服务器分配的部分目标数据与向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的部分目标数据的预定比例值;
步骤S1304:确定向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的目标数据比例值X,其中X满足X*M1+X*P*M2=1;
步骤S1305:设所述目标数据的大小为Q,将X*Q的值确定为向每个所述平均响应时间小于或等于预定平均响应时间阈值的源服务器请求的部分目标数据的大小;
步骤S1306:将X*P*Q的值确定为向每个所述平均响应时间大于预定平均响应时间阈值的源服务器请求的部分目标数据的大小。
通过依照各个源服务器对数据获取请求的平均响应时间的大小向所述源服务器分配不同大小的部分目标数据的请求,达到了各个源服务器需要响应的目标数据的大小能够与各自对获取请求的响应速度相匹配的目的。
在一实施例中,用户向服务器请求获取“总大小为1000MB的有关日用品消费的数据”。查找到拥有“有关日用品消费的数据”的源服务器有30个,将平均响应时间阈值预定为5s,并获取该30个源服务器中每个源服务器对数据获取请求的平均响应时间。根据所述每个源服务器对数据获取请求的平均响应时间,确定了其中平均响应时间小于或等于5s的源服务器数目为10,平均响应时间大于5s的源服务器数目为20。为了给平均响应时间小于或等于5s的源服务器分配更多的数据,将相对比例值确定为1/2,即给平均响应时间大于5s的源服务器分配的数据大小是给平均响应时间小于或等于5s的源服务器分配的数据大小的1/2。即M1=10,M2=20,P=1/2,将M1,M2,P的值代入X*M1+X*P*M2=1,得到X=1/20,即目标数据比例值为1/20。由于目标数据的总大小为1000MB,则将1000MB*1/20的值,即50MB确定为向每个平均响应时间小于或等于5s的源服务器请求的部分目标数据的大小;将1000MB*1/2*1/20的值,即25MB确定为向每个平均响应大于5s的源服务器请求的部分目标数据的大小。
在一实施例中,还可以同时根据源服务器的平均响应时间与从源服务器上获取数据的成功率对源服务器进行部分目标数据的分配。所述获取数据的成功率由源服务器历史上在预定时间段内获取的请求的数量与对应请求发出的数据的数量的比值确定。例如:在预定时间段内,一源服务器接收到了10个对数据的获取请求,对这些请求,该源服务器发送了对应其中8个请求的数据。则该源服务器的成功率为80%。
确定了源服务器的平均响应时间与成功率后,给平均响应时间小于或等于预设平均响应时间阈值的源服务器分配第一时间分数,给平均响应时间大于预设平均响应时间阈值的源服务器分配第二时间分数;给成功率大于预设成功率阈值的源服务器分配第一成功率分数,给成功率小于或等于预设成功率阈值的源服务器分配第二成功率分数。同时,为时间分数与成功率分数设定权重,对每个源服务器,计算出其时间分数与成功率分数的加权和,按照所有源服务器所述加权和的比例分配与比例相对应的部分目标数据的大小。
例如:预设的平均时间阈值为5s,预设的成功率阈值为80%,为时间分数分配的权重为0.8,为成功率分数分配的权重为1.2。对其中一源服务器,其对数据的平均响应时间为4s,则为其分配第一时间分数100,其获取数据的成功率为85%,则为其分配第一成功率分数100,确定出该源服务器的分数加权和为100*0.8+100*1.2,即200。对另一源服务器,其对数据的平均响应时间为6s,则为其分配第二时间分数60,其获取数据的成功率为70%,则为其分配第二成功率分数60,确定出该源服务器的分数加权和为60*0.8+60*1.2,即120。由此方法确定出所有源服务器的分数加权和,再根据分数加权和的比例确定分配给各个源服务器的部分目标数据的大小。
例如:请求的目标数据的总大小为1000MB,拥有所述目标数据的源服务器有7个。根据上述确定分数加权和的方法,确定出所有源服务器的分数加权和分别为:200、120、120、200、120、120、120。则根据分数加权和的比例5:3:3:5:3:3:3,为各个对应源服务器分配的部分目标数据的大小为200MB、120MB、120MB、200MB、120MB、120MB、120MB。
在步骤S140中,基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。
通过这种方法,将用户请求获取的目标数据向各个源服务器合理分配,达到了提高目标数据的获取效率的目的。
图4示出根据本公开一示例实施方式的从多个源服务器获取目标数据的流程图:
步骤S100:获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;
步骤S110:确定拥有所述目标数据的源服务器;
步骤S120:获取每个所述源服务器历史上对数据获取请求的平均响应时间;
步骤S130:基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;
步骤S140:基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求;
步骤S150:对每个所述源服务器,使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间;
步骤S160:如果所述实时平均响应时间大于预设实时平均响应时间阈值,停止向该所述源服务器发送获取所述部分目标数据的请求。
通过这种方法,将实时运行过程中存在阻塞情况的源服务器排除,以避免长时间无法获取对应的部分目标数据。
在步骤S150中,对每个所述源服务器,使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间。
在一实施例中,如图5所示,步骤S150包括:
步骤S1501:基于接收到所述源服务器对获取请求的响应的先后顺序,将对应的所述源服务器对所述目标数据请求的响应时间作为一个队列成员,依照后接收的排在后面的方式,构建为一数据队列;
步骤S1502:确定所述滑动窗口的窗口长度,每单位长度的所述滑动窗口用于在所述数据队列上读取一个所述队列成员;
步骤S1503:当所述数据队列的长度等于所述窗口长度时,使用所述滑动窗口读取所有所述队列成员,每次新增一个队列成员,所述滑动窗口沿着所述数据队列后移一个单位长度,并读取所述滑动窗口内所有所述队列成员;
步骤S1504:基于所述滑动窗口内的所有所述队列成员,确定滑动窗口内队列成员的平均值,即所述源服务器对获取请求的实时平均响应时间。
通过使用滑动窗口,达到了确定源服务器对数据获取请求的动态实时平均响应时间的目的。
在一实施例中,服务器向源服务器发送部分目标数据的获取请求,对于每个源服务器,确定其对目标数据的响应时间并顺序构建为一数据队列。使用滑动窗口在该数据队列上动态确定其实时平均响应时间。例如,一所述数据队列为3s、6s、5s、7s、5s、6s、8s,滑动窗口的长度为3,则从队列头开始,确定出的实时平均响应时间变化情况为4.7s、6s、5.7s、6s、6.3s。
在步骤S160中,如果所述实时平均响应时间大于预设实时平均响应时间阈值,停止向该所述源服务器发送获取所述部分目标数据的请求。
通过这种方法,达到了避免在发生阻塞情况的源服务器上花费大量等待响应时间的目的。
在一实施例中,预设实时平均响应时间阈值为8s。对一源服务器,当由滑动窗口动态确定出其对数据获取请求的实时平均响应时间大于8s时,即说明该源服务器对于数据获取请求的响应过于缓慢,出现了阻塞的情况。为了避免无止境地等下去,或者为了避免在该源服务器上花费大量的等待响应的时间,停止向该源服务器发送获取所述部分目标数据的请求。
如图2所示,在一实施例中,提供了一种从多个源服务器获取目标数据的装置,具体包括:第一获取模块210、确定模块220、第二获取模块230、分配模块240、发送模块250。
第一获取模块210,用于获取用户对目标数据的获取请求;
确定模块220,用于确定拥有所述目标数据的源服务器;
第二获取模块230,用于获取每个所述源服务器历史上对数据获取请求的平均响应时间;
分配模块240,用于向每个所述源服务器分配部分目标数据;
发送模块250,用于向每个源服务器发送所述部分目标数据的请求。
上述装置中各个模块的功能和作用的实现过程具体详见上述从多个源服务器获取目标数据的方法中对应步骤的实现过程,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
图6示出根据本公开一示例实施方式的从多个源服务器获取目标数据的系统架构图。该系统架构包括:
在一实施例中,用户终端330向服务器320发送对目标数据的获取请求,服务器320根据接收到的获取请求确定出拥有所述目标数据的各个源服务器310。根据各个源服务器310历史上对数据获取请求的平均响应时间,服务器320确定向各个源服务器310分配的部分目标数据的大小并根据所述分配的部分目标数据的大小向各个源服务器310发送获取请求。源服务器310响应于接收到的对部分目标数据的获取请求,将所述部分目标数据发送给服务器320,服务器320再发送给用户终端330。通过这种方法,达到了从多个源服务器获取目标数据的目的。
通过以上对系统架构的描述,本领域的技术人员易于理解,这里描述的系统架构能够实现图2所示的从多个源服务器获取目标数据的装置中各个模块的功能。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本发明的这种实施方式的电子设备400。图7显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:上述至少一个处理单元410、上述至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图1中所示步骤S100:获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;步骤S110:确定拥有所述目标数据的源服务器;步骤S120:获取每个所述源服务器历史上对数据获取请求的平均响应时间;步骤S130:基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;步骤S140:基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求。
存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。
存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器460通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (9)

1.一种从多个源服务器获取目标数据的方法,其特征在于,包括:
获取用户对目标数据的获取请求,所述获取请求中具有目标数据的大小;
确定拥有所述目标数据的源服务器;
获取每个所述源服务器历史上对数据获取请求的平均响应时间;
基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的部分目标数据的大小;
基于所述向每个源服务器分配的所述部分目标数据的大小,向所述每个源服务器发送所述部分目标数据的请求;
对每个所述源服务器,确定所述源服务器对目标数据的响应时间并顺序构建为一数据队列,使用滑动窗口在所述数据队列上动态确定所述源服务器的实时平均响应时间;
如果所述实时平均响应时间大于预设实时平均响应时间阈值,停止向该所述源服务器发送获取所述部分目标数据的请求。
2.根据权利要求1的方法,其特征在于,所述获取请求中还具有目标数据的类型,确定拥有所述目标数据的源服务器包括:根据获取请求中的目标数据的类型,查找目标数据的类型与源服务器对照表,确定拥有所述目标数据的源服务器。
3.根据权利要求1的方法,其特征在于,获取每个所述源服务器历史上对数据获取请求的平均响应时间,包括:将当前时间点前预定时间段内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。
4.根据权利要求1的方法,其特征在于,获取每个所述源服务器历史上对数据获取请求的平均响应时间,包括:将当前时间点所属时间周期内所述源服务器对数据获取请求的平均响应时间确定为历史上所述源服务器对数据获取请求的平均响应时间。
5.根据权利要求1的方法,其特征在于,基于所述源服务器历史上对数据获取请求的平均响应时间和所述目标数据的大小,确定向每个所述源服务器分配的所述部分目标数据的大小,包括:
确定所述多个源服务器中所述平均响应时间小于或等于预定平均响应时间阈值的源服务器数目M1;
确定所述多个源服务器中所述平均响应时间大于预定平均响应时间阈值的源服务器数目M2;
获取预设的相对比例值P,所述相对比例值P为向每个平均响应时间大于预定平均响应时间阈值的源服务器分配的部分目标数据与向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的部分目标数据的预定比例值;
确定向每个平均响应时间小于或等于预定平均响应时间阈值的源服务器分配的目标数据比例值X,其中X满足X*M1+X*P*M2=1;
设所述目标数据的大小为Q,将X*Q的值确定为向每个所述平均响应时间小于或等于预定平均响应时间阈值的源服务器请求的部分目标数据的大小;
将X*P*Q的值确定为向每个所述平均响应时间大于预定平均响应时间阈值的源服务器请求的部分目标数据的大小。
6.根据权利要求1的方法,其特征在于,确定所述源服务器对目标数据的响应时间并顺序构建为一数据队列,使用滑动窗口在所述数据队列上动态确定所述源服务器的实时平均响应时间,包括:
基于接收到所述源服务器对获取请求的响应的先后顺序,将对应的所述源服务器对所述目标数据请求的响应时间作为一个队列成员,依照后接收的排在后面的方式,构建为一数据队列;
确定所述滑动窗口的窗口长度,每单位长度的所述滑动窗口用于在所述数据队列上读取一个所述队列成员;
当所述数据队列的长度等于所述窗口长度时,使用所述滑动窗口读取所有所述队列成员,每次新增一个队列成员,所述滑动窗口沿着所述数据队列后移一个单位长度,并读取所述滑动窗口内所有所述队列成员;
基于所述滑动窗口内的所有所述队列成员,确定滑动窗口内队列成员的平均值,即所述源服务器对获取请求的实时平均响应时间。
7.一种从多个源服务器获取目标数据的装置,其特征在于,包括:
第一获取模块,用于获取用户对目标数据的获取请求;
确定模块,用于确定拥有所述目标数据的源服务器;
第二获取模块,用于获取每个所述源服务器历史上对数据获取请求的平均响应时间;
分配模块,用于向每个所述源服务器分配部分目标数据;
发送模块,用于向每个源服务器发送所述部分目标数据的请求,对每个所述源服务器,使用滑动窗口确定当前窗口内所述源服务器对获取请求的实时平均响应时间;如果所述实时平均响应时间大于预设实时平均响应时间阈值,停止向该所述源服务器发送获取所述部分目标数据的请求。
8.一种从多个源服务器获取目标数据的电子设备,其特征在于,包括:
存储器,配置为存储可执行指令;
处理器,配置为执行存储器中存储的可执行指令,以实现根据权利要求1-6中任一个所述的方法。
9.一种计算机可读程序介质,其特征在于,其存储有计算机程序指令,当所述计算机指令被计算机执行时,使计算机执行根据权利要求1-6中任一个所述的方法。
CN201811237456.4A 2018-10-23 2018-10-23 从多个源服务器获取目标数据的方法、装置和计算机设备 Active CN109600415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811237456.4A CN109600415B (zh) 2018-10-23 2018-10-23 从多个源服务器获取目标数据的方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811237456.4A CN109600415B (zh) 2018-10-23 2018-10-23 从多个源服务器获取目标数据的方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN109600415A CN109600415A (zh) 2019-04-09
CN109600415B true CN109600415B (zh) 2022-04-15

Family

ID=65957937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811237456.4A Active CN109600415B (zh) 2018-10-23 2018-10-23 从多个源服务器获取目标数据的方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN109600415B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110290217B (zh) * 2019-07-01 2022-04-26 腾讯科技(深圳)有限公司 数据请求的处理方法及装置、存储介质及电子装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0426176D0 (en) * 2004-11-29 2004-12-29 Tang Bob Immediate ready implementation of virtually congestion free guaranteed service capable network
CN105610995A (zh) * 2015-09-11 2016-05-25 宇龙计算机通信科技(深圳)有限公司 Dns服务器的选择方法、dns服务器的选择装置和终端
US20170149821A1 (en) * 2015-11-25 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method And System For Protection From DDoS Attack For CDN Server Group
CN105897836A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 一种回源请求处理方法及装置
CN105871591A (zh) * 2015-12-21 2016-08-17 乐视云计算有限公司 一种分发cdn地址的方法及装置
CN106993054B (zh) * 2017-05-05 2022-06-03 腾讯科技(深圳)有限公司 文件分发方法、节点及系统
CN108093036B (zh) * 2017-12-08 2021-11-05 网易(杭州)网络有限公司 一种获取资源的方法及装置
CN108491526B (zh) * 2018-03-28 2022-02-22 腾讯科技(深圳)有限公司 日志数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN109600415A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
JP7127010B2 (ja) リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム
US8762525B2 (en) Managing risk in resource over-committed systems
US9495220B2 (en) Self-management of request-centric systems
US8555276B2 (en) Systems and methods for transparently optimizing workloads
CN110753131A (zh) 微服务分布式限流方法及装置、存储介质和电子设备
US8539192B2 (en) Execution of dataflow jobs
US10057332B2 (en) Preemptive extraction of data from long latency storage in a cloud computing environment
KR20120102664A (ko) 미래 사용 추정에 기반한 저장 메모리 할당
US20170208120A1 (en) Probabilistic throttling
CN110489440B (zh) 数据查询方法和装置
CN109272348B (zh) 活跃用户数量确定方法及装置、存储介质和电子设备
US20120323821A1 (en) Methods for billing for data storage in a tiered data storage system
US11750711B1 (en) Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
US7251664B2 (en) Volume allocation within a storage management system
US20130219066A1 (en) Host system admission control
CN109600415B (zh) 从多个源服务器获取目标数据的方法、装置和计算机设备
CN111177513A (zh) 异常访问地址的确定方法、装置、电子设备及存储介质
US20200226144A1 (en) Resource scaling for distributed database services
US11340953B2 (en) Method, electronic device and computer program product for load balance
CN112884181A (zh) 额度信息处理方法和装置
CN110351327B (zh) 资源处理平台的确认方法、装置、电子设备和介质
US20230237017A1 (en) Data flow control in distributed computing systems
CN113034188A (zh) 一种多媒体内容投放方法、装置及电子设备
CN110908810A (zh) 一种消息传输方法和装置
CN110765136A (zh) 标识符的管理方法、装置、介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant