具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的一种含有重合数据项标签的数据源优选访问路径方法的流程示意图,如图1所示,本实施例的含有重合数据项标签的数据源优选访问路径方法,包括:
P1、接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签。
可以理解的是,所述数据获取请求中的数据属性字段包含的数据项标签,代表需要获取的数据项。本实施例是针对用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签的情况,实现数据源的访问,例如,所述数据获取请求中的数据属性字段包含的数据项标签可以为Attr1、Attr2、…、Attrn,n为所述数据获取请求中的数据属性字段包含的数据项标签的数量。
可以理解的是,所述最高成本上限MaxMoney代表本次访问用户终端接受的最高成本,例如假设MaxMoney为1元,则意味着使用所述用户终端的用户最多愿意花1元获得所述数据项标签的数据项。
可以理解的是,所述最长返回时间MaxTime代表本次访问用户终端最长可以等待获得数据项标签的值的时间。
需要说明的是,本实施例所述方法的执行主体为数据服务平台。
P2、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合。
可以理解的是,由于所述数据获取请求中的数据属性字段包含至少两个数据项标签,本实施例需要在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签(即每个数据源组合中的不同数据源之间可以有重复的数据项标签)。例如:
所述数据获取请求中的数据属性字段包含的数据项标签为Attr1、Attr2、Attr3、Attr4、Attr5、Attr6;
A数据源含有数据项标签Attr1、Attr2、Attr3、Attr4、Attr5、Attr6,将A数据源加入第一数据源集合;
B数据源含有数据项标签Attr1、Attr2、Attr3,C数据源含有数据项标签Attr4、Attr5、Attr6,将数据源组合{B,C}加入第一数据源集合;
D数据源含有数据项标签Attr1、Attr2,E数据源含有数据项标签Attr2、Attr3、Attr4、Attr5,F数据源含有数据项标签Attr5、Attr6,将数据源组合{D,E,F}加入第一数据源集合,{D,E,F}中包括重复的数据项标签Attr2和Attr5。
P3、基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求。
可以理解的是,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,能够在第一数据源集合中挑选满足访问时间和数据源成本要求的独立的数据源或数据源组合,对于不同数据源组合成的数据源组合有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,保证返回成功率最高和成本最低,且能够更加有效的提高访问数据源的速度。
P4、接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端。
可以理解的是,本实施例所述方法是针对用户终端发送的数据获取请求中数据属性字段包含至少两个数据项标签、寻找含有所有数据项标签的数据源并寻找含有部分数据项标签的数据源组成的数据源组合,所述数据源组合包括所有数据项标签且包括重复数据项标签的情况,基于最高成本上限MaxMoney和最长返回时间MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求,接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发给用户终端,能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
本发明实施例提供的含有重合数据项标签的数据源优选访问路径方法,通过接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签,在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合,基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求,接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端,能够实现高性能的数据源访问,提升平台响应速度,可满足对于数据源访问时间和降低数据源成本的要求,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
进一步地,在上述实施例的基础上,所述预设数据源优选访问路径策略可以包括图中未示出的步骤Q1-Q4:
Q1、对于第一数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断是否超过每秒最大访问频次Top TPS,若否,则确定所述数据源可以访问,将第一数据源集合中所有可以访问的独立的数据源或数据源组合加入第二数据源集合。
可以理解的是,对于每个(第三方)数据源,都会预先设定访问状态属性列表List,所述访问状态属性列表List可保存每次数据源访问的状态属性对象(StateAttr),每个StateAttr都包含两个属性:访问是否成功以及本次访问的耗费时间。
Q2、对于第二数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断过去一秒内的平均访问成功比例AvgSucc是否小于预设阈值,若否,则保留所述数据源,将第二数据源集合中本次保留的独立的数据源或数据源组合加入第三数据源集合。
Q3、获取所述第三数据源集合中含有所述数据属性字段中数据项标签的价格小于所述MaxMoney的独立的数据源和所述第三数据源集合中含有所述数据属性字段中数据项标签的价格总和小于所述MaxMoney的数据源组合,组成第四数据源集合。
在具体应用中,本步骤可以列出详细的访问逻辑关系,将符合条件(所述第三数据源集合中含有所述数据属性字段中数据项标签的价格小于所述MaxMoney的独立的数据源或所述第三数据源集合中含有所述数据属性字段中数据项标签的价格总和小于所述MaxMoney的数据源组合)的组成第四数据源集合。例如,在上述步骤P2中举例的数据源组合{D,E,F},可以列出详细的访问逻辑关系:
可以访问数据源D的Attr1,数据源E的Attr2、Attr3、Attr4、Attr5,数据源F的Attr6,价格总和为Money1;也可以访问数据源D的Attr1、Attr2,数据源E的Attr3、Attr4、Attr5,数据源F的Attr6,价格总和为Money2;也可以访问数据源D的Attr1、Attr2,数据源E的Attr3、Attr4,数据源F的Attr5、Attr6,价格总和为Money2等等,其中,若Money1和Money2均小于MaxMoney,则Money1和Money2所对应的访问逻辑关系生效,将数据源组合{D,E,F}加入第四数据源集合。
可以理解的是,所述MaxMoney是从用户终端发送的数据获取请求中读取的,本步骤能够确保本次访问数据源的成本不超过最高成本上限MaxMoney,即能够使本次访问数据源所花费的成本不亏损。
Q4、对第四数据源集合中的独立的数据源和数据源组合,按照数据源个数进行分组,同时将数据源个数相同的小组中含有最多组合的子数据源排在前面,列为优先访问数据源。
在具体应用中,所述预设数据源优选访问路径策略,还可以包括:
在优先访问数据源包括多种数据项标签路径时,若首次从优先访问数据源获取某一数据项标签后,后续具有的不同的继续访问方式最多,则将本次获取的数据项标签作为本次获取数据项标签;当有两种获取数据项标签方式的后续有相同数量个不同的继续访问方式时,选择所述两种获取数据项标签方式中价格较低的数据项标签作为本次获取数据项标签。
举例来说,假设访问数据源D可以选择获取数据项标签Attr1的方式,也可以选择获取数据项标签Attr1、Attr2的方式,在含有数据源D的数据源组合中,如果首次从D数据源中获取数据项标签Attr1,后续有3种不同的继续访问方式,而如果首次从D数据源中获取数据项标签Attr1,Attr2,后续只有2中不同的继续访问方式,本实施例优先选择后续有更多访问方式的作为本次获取标签。
可以理解的是,对于不同数据源组合成的数据源组合有重复标签的现象,本实施例根据每个数据源的标签组合判断优选的访问数据源和标签,能够保证返回成功率最高和成本最低,且能够更加有效的提高访问数据源的速度。
可以理解的是,本实施例所述方法能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,在不超过数据源访问频度的情况下,提升平台响应速度,可满足对于数据源TPS、访问时间和降低数据源成本的要求,以最快、最经济的方式向用户终端返回访问成功结果,在最高成功率以及不亏损的情况下达到数据服务平台的最大收益;对于不同数据源有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
进一步地,在上述实施例的基础上,在所述步骤P4接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果之后,本实施例所述方法还可以包括:
根据所述本次数据访问的结果,生成一个本次访问的状态属性对象,所述本次访问的状态属性对象,包括:本次访问是否成功和本次访问的耗费时间,将生成的本次访问的状态属性对象加入所挑选的数据源或数据源组合所对应的访问状态属性列表List。
可以理解的是,在将生成的本次访问的状态属性对象加入所挑选的数据源或数据源组合所对应的访问状态属性列表List之后,所述方法还可以包括:
在预设数据生存时间TTL之后,所挑选的数据源或数据源组合所对应的访问状态属性列表List中所加入的本次访问的状态属性对象被自动清除。
在具体应用中,可以根据实际情况对所述TTL进行预先设置,本实施例并不对其进行限制,举例来说,所述TTL可以预先设置为1秒。
可以理解的是,对于每个(第三方)数据源,都会预先设定访问状态属性列表List中状态属性对象的数据生存时间TTL,以使每个状态属性对象在加入到访问状态属性列表List的TTL之后被自动清除。
进一步地,在上述实施例的基础上,在所述步骤P4接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果之后,本实施例所述方法还可以包括:
若访问失败,则判断本次的访问时间ProcessTime是否大于MaxTime;
若本次的访问时间ProcessTime小于等于MaxTime,则将所述MaxTime减去ProcessTime,获得剩余允许时间LeftTime,在所述第四数据源集合中选择AvgTime小于LeftTime的数据源,从当前选择的数据源中挑选含有数据项标签最多的数据源,发送数据访问请求;
若本次的访问时间ProcessTime大于MaxTime,则获取数据失败,将获取数据失败的信息发送给所述用户终端。
可以理解的是,本实施例是在本次访问失败的情况下,计算剩余允许时间LeftTime,在第四数据源集合中选择AvgTime小于LeftTime的数据源,从中挑选含有数据项标签最多的继续进行访问。
进一步地,在上述实施例的基础上,本实施例所述预设数据源优选访问路径策略,还可以包括:
在对于第一数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断是否超过每秒最大访问频次Top TPS之后,若第一数据源集合中每个独立的数据源或数据源组合中的每个数据源超过每秒最大访问频次Top TPS,则不访问所述数据源。
可以理解的是,若第一数据源集合中每个独立的数据源或数据源组合中的每个数据源超过Top TPS,可能会产生访问数据源超过允许频率,导致封禁现象的发生,此时不访问所述数据源。
进一步地,在上述实施例的基础上,本实施例所述预设数据源优选访问路径策略,还可以包括:
在判断过去一秒内的平均访问成功比例AvgSucc是否小于预设阈值之后,若所述AvgSucc小于预设阈值,则将所述数据源抛弃。
可以理解的是,若所述数据源的AvgSucc小于预设阈值,则可认为访问所述数据源的成功率较低,直接将所述数据源抛弃。
本发明实施例提供的含有重合数据项标签的数据源优选访问路径方法,能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,在不超过数据源访问频度的情况下,提升平台响应速度,可满足对于数据源TPS、访问时间和降低数据源成本的要求,以最快、最经济的方式向用户终端返回访问成功结果,在最高成功率以及不亏损的情况下达到数据服务平台的最大收益;对于不同数据源有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
图2示出了本发明一实施例提供的一种含有重合数据项标签的数据源优选访问路径装置的结构示意图,如图2所示,本实施例的含有重合数据项标签的数据源优选访问路径装置,包括:第一接收模块21、组成模块22、挑选模块23和第二接收模块24;其中:
所述第一接收模块21,用于接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签;
所述组成模块22,用于在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合;
所述挑选模块23,用于基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求;
所述第二接收模块24,用于接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端。
具体地,所述第一接收模块21接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签;所述组成模块22在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合;所述挑选模块23基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求;所述第二接收模块24接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端。
可以理解的是,所述数据获取请求中的数据属性字段包含的数据项标签,代表需要获取的数据项。本实施例是针对用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签的情况,实现数据源的访问,例如,所述数据获取请求中的数据属性字段包含的数据项标签可以为Attr1、Attr2、…、Attrn,n为所述数据获取请求中的数据属性字段包含的数据项标签的数量。
可以理解的是,所述最高成本上限MaxMoney代表本次访问用户终端接受的最高成本,例如假设MaxMoney为1元,则意味着使用所述用户终端的用户最多愿意花1元获得所述数据项标签的数据项。
可以理解的是,所述最长返回时间MaxTime代表本次访问用户终端最长可以等待获得数据项标签的值的时间。
需要说明的是,本实施例所述装置应用于数据服务平台。
可以理解的是,由于所述数据获取请求中的数据属性字段包含至少两个数据项标签,所述组成模块22需要在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签(即每个数据源组合中的不同数据源之间可以有重复的数据项标签)。例如:
所述数据获取请求中的数据属性字段包含的数据项标签为Attr1、Attr2、Attr3、Attr4、Attr5、Attr6;
A数据源含有数据项标签Attr1、Attr2、Attr3、Attr4、Attr5、Attr6,将A数据源加入第一数据源集合;
B数据源含有数据项标签Attr1、Attr2、Attr3,C数据源含有数据项标签Attr4、Attr5、Attr6,将数据源组合{B,C}加入第一数据源集合;
D数据源含有数据项标签Attr1、Attr2,E数据源含有数据项标签Attr2、Attr3、Attr4、Attr5,F数据源含有数据项标签Attr5、Attr6,将数据源组合{D,E,F}加入第一数据源集合,{D,E,F}中包括重复的数据项标签Attr2和Attr5。
可以理解的是,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,能够在第一数据源集合中挑选满足访问时间和数据源成本要求的独立的数据源或数据源组合,对于不同数据源组合成的数据源组合有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,保证返回成功率最高和成本最低,且能够更加有效的提高访问数据源的速度。
可以理解的是,本实施例所述装置是针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
本发明实施例提供的含有重合数据项标签的数据源优选访问路径装置,能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,实现高性能的数据源访问,提升平台响应速度,可满足对于数据源访问时间和降低数据源成本的要求,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
进一步地,在上述实施例的基础上,所述预设数据源优选访问路径策略,可以包括:
对于第一数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断是否超过每秒最大访问频次Top TPS,若否,则确定所述数据源可以访问,将第一数据源集合中所有可以访问的独立的数据源或数据源组合加入第二数据源集合;
对于第二数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断过去一秒内的平均访问成功比例AvgSucc是否小于预设阈值,若否,则保留所述数据源,将第二数据源集合中本次保留的独立的数据源或数据源组合加入第三数据源集合;
获取所述第三数据源集合中含有所述数据属性字段中数据项标签的价格小于所述MaxMoney的独立的数据源和所述第三数据源集合中含有所述数据属性字段中数据项标签的价格总和小于所述MaxMoney的数据源组合,组成第四数据源集合;
对第四数据源集合中的独立的数据源和数据源组合,按照数据源个数进行分组,同时将数据源个数相同的小组中含有最多组合的子数据源排在前面,列为优先访问数据源。
可以理解的是,对于每个(第三方)数据源,都会预先设定访问状态属性列表List,所述访问状态属性列表List可保存每次数据源访问的状态属性对象(StateAttr),每个StateAttr都包含两个属性:访问是否成功以及本次访问的耗费时间。
在具体应用中,所述挑选模块23将所述第三数据源集合中含有所述数据属性字段中数据项标签的价格小于所述MaxMoney的独立的数据源和所述第三数据源集合中含有所述数据属性字段中数据项标签的价格总和小于所述MaxMoney的数据源组合,组成第四数据源集合的过程中,可以列出详细的访问逻辑关系,将符合条件(所述第三数据源集合中含有所述数据属性字段中数据项标签的价格小于所述MaxMoney的独立的数据源或所述第三数据源集合中含有所述数据属性字段中数据项标签的价格总和小于所述MaxMoney的数据源组合)的组成第四数据源集合。例如,在上述步骤P2中举例的数据源组合{D,E,F},可以列出详细的访问逻辑关系:
可以访问数据源D的Attr1,数据源E的Attr2、Attr3、Attr4、Attr5,数据源F的Attr6,价格总和为Money1;也可以访问数据源D的Attr1、Attr2,数据源E的Attr3、Attr4、Attr5,数据源F的Attr6,价格总和为Money2;也可以访问数据源D的Attr1、Attr2,数据源E的Attr3、Attr4,数据源F的Attr5、Attr6,价格总和为Money2等等,其中,若Money1和Money2均小于MaxMoney,则Money1和Money2所对应的访问逻辑关系生效,将数据源组合{D,E,F}加入第四数据源集合。
在具体应用中,所述预设数据源优选访问路径策略,还可以包括:
在优先访问数据源包括多种数据项标签路径时,若首次从优先访问数据源获取某一数据项标签后,后续具有的不同的继续访问方式最多,则将本次获取的数据项标签作为获取数据项标签;当有两种获取数据项标签方式的后续有相同数量个不同的继续访问方式时,选择所述两种获取数据项标签方式中价格较低的数据项标签作为获取数据项标签。
举例来说,假设访问数据源D可以选择获取数据项标签Attr1的方式,也可以选择获取数据项标签Attr1、Attr2的方式,在含有数据源D的数据源组合中,如果首次从D数据源中获取数据项标签Attr1,后续有3种不同的继续访问方式,而如果首次从D数据源中获取数据项标签Attr1,Attr2,后续只有2中不同的继续访问方式,本实施例优先选择后续有更多访问方式的作为本次获取标签。
可以理解的是,对于不同数据源组合成的数据源组合有重复标签的现象,本实施例根据每个数据源的标签组合判断优选的访问数据源和标签,能够保证返回成功率最高和成本最低,且能够更加有效的提高访问数据源的速度。
可以理解的是,本实施例所述装置能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,在不超过数据源访问频度的情况下,提升平台响应速度,可满足对于数据源TPS、访问时间和降低数据源成本的要求,以最快、最经济的方式向用户终端返回访问成功结果,在最高成功率以及不亏损的情况下达到数据服务平台的最大收益;对于不同数据源有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
进一步地,在上述实施例的基础上,所述第二接收模块24,还可用于
根据所述本次数据访问的结果,生成一个本次访问的状态属性对象,所述本次访问的状态属性对象,包括:本次访问是否成功和本次访问的耗费时间,将生成的本次访问的状态属性对象加入所挑选的数据源或数据源组合所对应的访问状态属性列表List。
可以理解的是,所述第二接收模块24,还可用于
在将生成的本次访问的状态属性对象加入所挑选的数据源或数据源组合所对应的访问状态属性列表List之后,在预设数据生存时间TTL之后,所挑选的数据源或数据源组合所对应的访问状态属性列表List中所加入的本次访问的状态属性对象被自动清除。
在具体应用中,可以根据实际情况对所述TTL进行预先设置,本实施例并不对其进行限制,举例来说,所述TTL可以预先设置为1秒。
可以理解的是,对于每个(第三方)数据源,都会预先设定访问状态属性列表List中状态属性对象的数据生存时间TTL,以使每个状态属性对象在加入到访问状态属性列表List的TTL之后被自动清除。
进一步地,在上述实施例的基础上,所述第二接收模块24,还可用于
在接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果之后,若访问失败,则判断本次的访问时间ProcessTime是否大于MaxTime;
若本次的访问时间ProcessTime小于等于MaxTime,则将所述MaxTime减去ProcessTime,获得剩余允许时间LeftTime,在所述第四数据源集合中选择AvgTime小于LeftTime的数据源,从当前选择的数据源中挑选含有数据项标签最多的数据源,发送数据访问请求;
若本次的访问时间ProcessTime大于MaxTime,则获取数据失败,将获取数据失败的信息发送给所述用户终端。
可以理解的是,本实施例是在本次访问失败的情况下,计算剩余允许时间LeftTime,在第四数据源集合中选择AvgTime小于LeftTime的数据源,从中挑选含有数据项标签最多的数据源继续进行访问。
进一步地,在上述实施例的基础上,所述预设数据源优选访问路径策略,还可以包括:
在对于第一数据源集合中每个独立的数据源或数据源组合中的每个数据源,判断是否超过每秒最大访问频次Top TPS之后,若第一数据源集合中每个独立的数据源或数据源组合中的每个数据源超过每秒最大访问频次Top TPS,则不访问所述数据源。
可以理解的是,若第一数据源集合中每个独立的数据源或数据源组合中的每个数据源超过Top TPS,可能会产生访问数据源超过允许频率,导致封禁现象的发生,此时不访问所述数据源。
进一步地,在上述实施例的基础上,所述预设数据源优选访问路径策略,还可以包括:
在判断过去一秒内的平均访问成功比例AvgSucc是否小于预设阈值之后,若所述AvgSucc小于预设阈值,则将所述数据源抛弃。
可以理解的是,若所述数据源的AvgSucc小于预设阈值,则可认为访问所述数据源的成功率较低,直接将所述数据源抛弃。
本发明实施例提供的含有重合数据项标签的数据源优选访问路径装置,能够针对接收用户终端发送的数据获取请求中的数据属性字段包含至少两个数据项标签、在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,组成第一数据源集合的情况,能够提供高性能的数据源访问方式,在不超过数据源访问频度的情况下,提升平台响应速度,可满足对于数据源TPS、访问时间和降低数据源成本的要求,以最快、最经济的方式向用户终端返回访问成功结果,在最高成功率以及不亏损的情况下达到数据服务平台的最大收益;对于不同数据源有重复标签的现象,会根据每个数据源的标签组合判断优选的访问数据源和标签,通过所述预设数据源优选访问路径策略中对重复数据标签的优选方式,可以有效提升访问的成功率。
本发明实施例提供的含有重合数据项标签的数据源优选访问路径装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4示出了本发明一实施例提供的一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括存储器402、处理器401及存储在存储器402上并可在处理器401上运行的计算机程序,所述处理器401执行所述程序时实现上述方法的步骤,例如包括:接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签;在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合;基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求;接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤,例如包括:接收用户终端发送的数据获取请求,读取所述数据获取请求中的数据属性字段、最高成本上限MaxMoney和最长返回时间MaxTime,其中,所述数据属性字段包含至少两个数据项标签;在所有数据源中寻找含有所述数据属性字段中所有数据项标签的数据源,以及在所有数据源中寻找含有所述数据属性字段中部分数据项标签的不同数据源组合成的数据源组合,所述数据源组合包括所述数据属性字段中所有数据项标签且包括重复的数据项标签,将所有寻找的数据源和数据源组合组成第一数据源集合;基于所读取的MaxMoney和MaxTime,按照预设数据源优选访问路径策略,所述预设数据源优选访问路径策略考虑时间、成本、访问数据源的优先级并根据后续的访问方式的作为优选获取标签组合,在第一数据源集合中挑选独立的数据源或数据源组合发送本次数据访问请求;接收所挑选的独立的数据源或数据源组合返回的本次数据访问的结果,若访问成功,则将本次数据访问的结果发送给用户终端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。