CN107273216B - 一种数据请求的处理方法、装置及系统 - Google Patents

一种数据请求的处理方法、装置及系统 Download PDF

Info

Publication number
CN107273216B
CN107273216B CN201610216901.3A CN201610216901A CN107273216B CN 107273216 B CN107273216 B CN 107273216B CN 201610216901 A CN201610216901 A CN 201610216901A CN 107273216 B CN107273216 B CN 107273216B
Authority
CN
China
Prior art keywords
parameter
request
data
result
executor
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
CN201610216901.3A
Other languages
English (en)
Other versions
CN107273216A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610216901.3A priority Critical patent/CN107273216B/zh
Publication of CN107273216A publication Critical patent/CN107273216A/zh
Application granted granted Critical
Publication of CN107273216B publication Critical patent/CN107273216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据请求的处理方法、装置及系统。该方法包括:确定与数据请求中请求参数相对应的唯一参数标识;获取与所述唯一参数标识相对应的参数执行器;所述参数执行器执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理,将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。利用本申请实施例提供的技术方案可以有效应对高并发场景下的数据请求,降低系统的内存处理开销和性能损耗,解决了域外系统的QPS压力,同时可以提高返回给数据请求方的请求结果信息的准确率,改善用户体验。

Description

一种数据请求的处理方法、装置及系统
技术领域
本申请涉及互联网通信技术领域,特别涉及一种数据请求的处理方法、装置及系统。
背景技术
随着互联网通信技术的发展,互联网在人们日常的学习、工作和生活中得到广泛的应用。人们可以通过浏览相关网页获取各种信息。一些大型的外网主站系统需要通过展示实时的信息以应对上亿PV(page view,页面浏览量)请求。相应的,所述外网主站系统可以从域内的子系统调用实时的信息,相应的,所述子系统可以向相应的域外系统(如:OTA或者B端网站等)发送相应的数据请求获得所述实时的信息。但这种上亿PV请求的高并发场景下的数据请求对域外系统的QPS(Query Per Second,每秒查询率)带来巨大压力。
应对所述高并发场景下的数据请求,现有技术中可以通过将域外系统的信息缓存在外网主站系统的子系统来降低域外系统的QPS压力。但现有技术的缓存数据的方法只能适用于一些不太会变化的数据,或者在一个特定时间范围内是可忽略数据变化的应用场景。针对商品报价、库存等实时变化的数据,现有的方法中当缓存过期时间设置的过长时,就会导致数据不准确,造成外网主站系统展示信息的错误;反之,当缓存过期时间设置的过短时,需要频繁的进行对过期数据的删除和新数据的插入操作,导致较大的内存开销和巨大的性能损耗。
因此,现有技术无法有效应对高并发场景下的数据请求,适用的应用场景局限,会带来较大的内存开销和巨大的性能损耗,且会导致展示信息的准确率低,用户体验差。
发明内容
本申请实施例的目的是提供一种数据请求的处理方法、装置及系统,可以有效应对高并发场景下的数据请求,降低系统的内存处理开销和性能损耗,解决域外系统的QPS压力,同时可以提高返回给数据请求方的请求结果信息的准确率,改善用户体验。
本申请实施例提供一种数据请求的处理方法、装置及系统是这样实现的:
一种数据请求的处理方法,所述方法包括:
确定与数据请求中请求参数相对应的唯一参数标识;
获取与所述唯一参数标识相对应的参数执行器;
所述参数执行器执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;
将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
一种数据请求的处理装置,所述装置包括:
唯一参数标识确定模块,用于确定与数据请求中请求参数相对应的唯一参数标识;
参数执行器获取模块,用于获取与所述唯一参数标识相对应的参数执行器;
参数执行器,用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;
结果确定模块,用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
一种数据请求的处理系统,所述系统包括:
存储单元,用于存储与唯一参数标识相对应的参数执行器;
处理单元,被设置成,用于确定与数据请求中请求参数相对应的唯一参数标识;还用于获取与所述唯一参数标识相对应的参数执行器;还用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;还用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
本申请实施例本申请根据拦截的数据请求中的请求参数确定出相应的唯一参数标识;进而获取与所述唯一参数标识相对应的参数执行器;然后所述参数执行器执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理,将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。这样不仅可以保证系统性能,也有效解决了域外系统的QPS压力。与现有技术相比,利用本申请实施例的技术方案可以有效应对高并发场景下的数据请求,降低系统的内存处理开销和性能损耗,解决了域外系统的QPS压力,同时可以提高返回给数据请求方的请求结果信息的准确率,改善用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的数据请求的处理方法的一种实施例的流程示意图;
图2是本申请提供的获取与唯一参数标识相对应的参数执行器的一种实施例的流程示意图;
图3是本申请提供的执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理的一种实施例的流程示意图;
图4是本申请所述数据请求的处理方法的一种实施例的具体流程示意图;
图5是本申请提供的数据请求的处理装置的一种实施例的结构示意图;
图6是本申请提供的所述参数执行器的一种实施例的模块示意图;
图7是本申请提供的所述参数执行器获取模块的一种实施例的模块示意图;
图8是本申请提供数据请求的处理系统的一种实施例的结构示意图。
具体实施方式
本申请实施例提供一种数据请求的处理方法、装置及系统。该数据请求的处理方法可以应用在任何需要进行数据请求处理的系统,为了保证方案的通用性和扩展性,可以通过但不限于切面的形式将本申请所述数据请求的处理方法加入相应的系统中,无需对原有业务代码有任何入侵。具体的,可以定义所述数据请求的处理方法的入口,也就是切面对应的注解,例如:@interface RequestMerge;然后,在需要对数据请求进行处理的系统的相应的接口打上对应的@RequestMerge标签;最后,定义切面,对注解进行拦截,执行切面逻辑,具体的,所述切面逻辑可以包括:拦截数据请求,根据所述数据请求中的请求数据类型确定与所述请求数据类型相对应的唯一类型标识;从设置的缓存中获取与所述唯一类型标识相对应的合并处理器;所述合并处理器根据所述数据请求中的请求参数执行合并处理。本申请的一些实施例中可以包括但并不仅限于通过请求数据类型将数据请求进行划分后进行合并处理,本申请并不以此为限。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下以几个具体的例子详细说明本申请实施例的具体实现。
以下首先介绍本申请一种数据请求的处理方法的实施例。图1是本申请提供的数据请求的处理方法的一种实施例的流程示意图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:
S110:确定与数据请求中请求参数相对应的唯一参数标识。
本申请实施例中,在高并发场景下,域外系统在同一时间或短时间内可以接收到多个数据请求,相应的,可以拦截获取数据请求,根据拦截获取的数据请求中的请求参数确定与所述请求参数相对应的唯一参数标识。
一般的,所述请求参数可以包括请求数据的标识、类型以及请求时间等相关请求数据信息。以请求数据为商品A在2015年12月20号的库存为例,所述请求参数可以包括商品名称(请求数据的标识)、库存(请求数据的类型)、以及2015年12月20号(请求数据的请求时间)。
本申请实施例中,所述唯一参数标识可以作为所述数据请求中请求参数的标识,可以是根据所述请求参数以预设的方法确定的,且所述唯一参数标识与相应的请求参数一一对应。请求参数与唯一参数标识的对应关系可以预先存储。所述唯一参数标识的具体形式可以包括但并不限于序列号等,本申请实施例并不以此为限。
S120:获取与所述唯一参数标识相对应的参数执行器。
本申请实施例中,在步骤S110获取唯一参数标识之后,可以获取与所述唯一参数标识相对应的参数执行器。如图2所示,图2是本申请提供的获取与唯一参数标识相对应的参数执行器的一种实施例的流程示意图,具体的,可以包括:
S121:判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器。
具体的,所述设置的缓存可以用于存储不同请求参数对应的参数执行器,在一个具体的实施例中,所述设置的缓存可以包括但不限于静态缓存,静态缓存中存储有参数执行器可以表示为Map<Object[],MergeExecutor>。
在实际应用中,在同一时间或短时间内会出现对请求参数的数据请求。相应的,所述唯一参数标识所对应的数据请求可以包括预设缓存时间内对所述请求参数的初次请求,也可以包括预设缓存时间内对所述请求参数的非初次请求。一般的,在预设时间内,非初次请求的情况下,所述设置的缓存中会存储与所述唯一参数标识相对应的参数执行器。因此,本申请实施例中可以判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器。
具体的,所述预设缓存时间可以包括数据请求合并的时间间隔,将所述预设缓存时间内相同并发数据请求视为同一数据请求。所述预设缓存时间可以根据业务场景动态的调整设置。例如所述预设缓存时间设置为10毫秒,相应的,可以将10毫秒内针对一次数据请求的数据调用处理的返回结果作为10毫秒内所有相同并发数据请求的返回结果。
S122:当所述设置的缓存中不存在与所述唯一参数标识相对应的参数执行器时,根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中。
具体的,当步骤S121中判断的结果为否时,可以判断所述唯一参数标识所对应的数据请求为预设缓存时间内对所述请求参数的初次请求。相应的,可以根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中。
具体的,所述参数执行器可以包括根据所述请求参数以预设的方法确定的。在构造参数执行器之后,可以将所述参数执行器存储在所述设置的缓存中。一般的,在存储所述参数执行器时,可以存储所述参数执行器与相应唯一参数标识的一一映射关系。这样后续可以直接根据所述映射关系和唯一参数标识获取相应的参数执行器。
S123:当所述设置的缓存中存在与所述唯一参数标识相对应的参数执行器时,从所述设置的缓存中获取所述与所述唯一参数标识相对应的参数执行器。
具体的,当步骤S121中判断的结果为是时,可以判断所述唯一参数标识所对应的数据请求为预设缓存时间内对所述请求参数的非初次请求。相应的,可以从所述设置的缓存中获取所述与所述唯一参数标识相对应的参数执行器。
S130:所述参数执行器执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理。
本申请实施例中,在步骤S120获取所述参数执行器的前提下,所述参数执行器可以执行后续一系列基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理的操作。如图3所示,图3是本申请提供的执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理的一种实施例的流程示意图,具体的,所述执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理可以包括:
本申请实施例中,所述参数执行器的进程在同一时间或短时间内中可以有多个相同数据请求线程。相应的,每个参数执行器可以配置有相应的互斥锁,所述互斥锁与所述参数执行器一一对应。所述互斥锁可以用于在高并发数据请求时,阻塞当前没有成功设置所述互斥锁的数据请求。
131:当前进程中的数据请求申请占有所述参数执行器的互斥锁。
具体的,当前参数执行器进程中的数据请求可以申请占有所述参数执行器的互斥锁。
在实际应用中,一般参数执行器的当前进程中有多个数据请求,所述互斥锁可能已经被某一数据请求占有。相应的,所述数据请求申请占有所述参数执行器的互斥锁的过程可以是一个尝试申请占有互斥锁的过程。当获取到相应的参数执行器之后,参数执行器进程中的数据请求可以在预设阻塞时间内不断尝试申请占有所述互斥锁。
具体的,所述预设阻塞时间为高并发场景下多个数据请求线程的阻塞时间,可以预先根据实际应用场景设置,一般的,所述预设阻塞时间小于所述预设缓存时间,且大于数据调用处理的时间。
132:当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是。
具体的,当数据请求申请占有所述参数执行器的互斥锁成功时,相应的,当前数据请求线程成功占有所述互斥锁,所述参数执行器可以判断设置的初次请求状态是否为是。一般的,所述设置的初次请求状态可以用于判断当前设置所述互斥锁成功的数据请求线程所对应数据请求是否为预设缓存时间内的初次请求。相应的,所述方法还可以包括:
以所述预设缓存时间为周期,将所述初次请求状态设置为是。
具体的,当到达所述预设缓存时间,所述参数执行器可以初始化所述初次请求状态,将所述初次请求状态设置为是。
133:当所述判断的结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,并将所述初次请求状态设置为否。
具体的,当所述初次请求的状态为是时,可以判断当前的数据请求线程为预设缓存时间内的初次请求。相应的,所述参数执行器执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,并将所述初次请求状态设置为否。
相应的,所述方法还可以包括:
当所述判断的结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
本申请实施例中,通过将所述初次请求状态设置为否,且当判断出所述初次请求状态为否时,返回所述合并数据调用处理的结果。可以保证不需要为预设缓存时间内被阻塞且成功占有所述互斥锁的数据请求进行数据调用处理,直接获得所述预设缓存时间内初次请求时的数据调用处理的结果。这样可以有效降低域外系统的QPS压力。
134:返回所述合并数据调用处理的结果,释放所述互斥锁。
具体的,在实际应用中,无论是在预设缓存时间内第一个成功占有所述互斥锁的数据请求线程还是被阻塞但最后成功在预设缓存时间内占有所述互斥锁的数据请求线程,在返回所述合并数据调用处理的结果之后,所述参数执行器中的数据请求可以执行释放所述互斥锁的操作,这样后续的数据请求可以申请占有所述互斥锁。
在一些实施例中,所述方法还可以包括:
当数据请求申请占有所述参数执行器的互斥锁失败时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,返回所述合并数据调用处理的结果。
具体的,当数据请求申请占有所述参数执行器的互斥锁失败时,可以判断在所述预设阻塞时间到时,在预设缓存时间内与所述申请占有所述参数执行器的互斥锁失败的数据请求具有相同请求参数的数据请求的数据调用处理仍然没有返回结果,且没有释放所述互斥锁,则所述参数执行器为所述申请占有所述参数执行器的互斥锁失败的数据请求执行相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,返回所述合并数据调用处理的结果。
在一些实施例中,所述方法还可以包括:
在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
本申请实施例中,通过在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器可以保证所述合并数据调用处理的结果只对预设缓存时间内被阻塞的并发数据请求线程有效,其余的数据请求线程需要重新获取相应的数据调用处理的结果。这样就可以有效防止数据过期,保证外网主站系统展示信息的准确性。
S140:将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
本申请实施例中,在所述参数执行器返回所述合并数据调用处理的结果之后,可以将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
在一个具体的实施例中,如图4所示,图4是本申请所述数据请求的处理方法的一种实施例的具体流程示意图。
由此可见,本申请一种数据请求的处理方法的实施例根据拦截的数据请求中的请求参数确定出相应的唯一参数标识;进而获取与所述唯一参数标识相对应的参数执行器;然后所述参数执行器通过互斥锁阻塞处理,只有当当前申请占有所述互斥锁成功的数据请求所对应数据请求为初次请求时,才进行数据调用处理,可以将预设缓存时间内的数据请求进行合并数据调用处理,将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。这样不仅可以保证系统性能,也有效解决了域外系统的QPS压力。与现有技术相比,利用本申请实施例的技术方案可以有效应对高并发场景下的数据请求,降低系统的内存处理开销和性能损耗,解决了域外系统的QPS压力,同时可以提高返回给数据请求方的请求结果信息的准确率,改善用户体验。
本申请另一方面还提供一种数据请求的处理装置,如图5所示,图5是本申请提供的数据请求的处理装置的一种实施例的结构示意图,所述装置500可以包括:
唯一参数标识确定模块510,可以用于确定与数据请求中请求参数相对应的唯一参数标识;
参数执行器获取模块520,可以用于获取与所述唯一参数标识相对应的参数执行器;
参数执行器530,可以用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;
结果确定模块540,可以用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
本申请所述的数据请求的处理装置中通过唯一参数标识确定模块510和参数执行器获取模块520将数据请求分配到不同的参数执行器进行处理,然后参数执行器530可以执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理,得到所述合并数据调用处理的结果之后,所述结果确定模块540可以将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。这样可以有效应对高并发场景下的数据请求,不仅可以保证系统性能,也有效解决了域外系统的QPS压力。
本申请提供所述参数执行器530的一种具体实施例方式。具体的,如图6所示,图6是本申请提供的所述参数执行器的一种实施例的模块示意图,所述参数执行器530可以包括:
互斥锁申请单元531,可以用于当前进程中的数据请求申请占有所述参数执行器的互斥锁;
初次请求状态判断单元532,可以用于当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是;
第一数据调用处理单元533,可以用于当所述初次请求状态判断单元532的判断结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果;
第一初次请求状态设置单元534,可以用于所述第一数据调用处理单元在将所述数据调用处理的结果保存到所述合并数据调用处理的结果之后,将所述初次请求状态设置为否;
第一返回释放单元535,可以用于当所述第一数据调用处理单元533将所述数据调用处理的结果保存到所述合并数据调用处理的结果之后,返回所述合并数据调用处理的结果,释放所述互斥锁。
本申请提供所述参数执行器530的另一种具体实施例方式,在另一个实施例中,所述参数执行器530还可以包括:
第二返回释放单元,用于当所述初次请求状态判断单元532的判断结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
另一个实施例中,所述参数执行器530还可以包括:
第二初次请求状态设置单元,用于以所述预设缓存时间为周期,将所述初次请求状态设置为是。
本申请提供所述参数执行器530的另一种具体实施例方式,另一个实施例中,所述参数执行器530还可以包括:
第二数据调用处理单元,用于当数据请求申请占有所述参数执行器的互斥锁失败时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,返回所述合并数据调用处理的结果。
本申请所述的参数执行器530通过互斥锁、以及初次请求状态的设置可以保证只有当当前申请占有所述互斥锁成功的数据请求所对应数据请求为初次请求时,才进行数据调用处理,不需要为预设缓存时间内被阻塞且申请占有所述互斥锁成功的数据请求进行数据调用处理,实现了将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。这样可以有效降低域外系统的QPS压力。
本申请提供所述参数执行器获取模块520的一种具体实施例方式。具体的,如图7所示,图7是本申请提供的所述参数执行器获取模块的一种实施例的模块示意图,所述参数执行器获取模块520可以包括:
判断单元521,可以用于判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器;
参数执行器构造存储单元522,可以用于当所述判断单元521判断的结果为否时,根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中;
参数执行器获取单元523,可以用于当所述判断单元521判断的结果为是时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
另一种实施例中,所述装置500还可以包括:
参数执行器删除模块,可以用于在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
本申请另一方面还提供一种数据请求的处理系统,如图8所示,图8是本申请提供数据请求的处理系统的一种实施例的结构示意图,所述系统800可以包括:
存储单元810,可以用于存储与唯一参数标识相对应的参数执行器;
处理单元820,被设置成,可以用于确定与数据请求中请求参数相对应的唯一参数标识;还可以用于获取与所述唯一参数标识相对应的参数执行器;还可以用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;还可以用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。
另一种实施例中,所述处理单元820执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理可以包括:
所述处理单元820可以用于当前进程中的数据请求申请占有所述参数执行器的互斥锁;还可以用于当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是;还可以用于当所述判断的结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,并将所述初次请求状态设置为否;还可以用于返回所述合并数据调用处理的结果,释放所述互斥锁。
另一种实施例中,所述处理单元820被设置成,还可以包括:
所述处理单元820可以用于当所述判断的结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
另一种实施例中,所述处理单元820被设置成,还可以包括:
所述处理单元820可以用于以所述预设缓存时间为周期,将所述初次请求状态设置为是。
由此可见,本申请一种数据请求的处理方法、装置及系统的实施例根据拦截的数据请求中的请求参数确定出相应的唯一参数标识;进而获取与所述唯一参数标识相对应的参数执行器;然后所述参数执行器通过互斥锁阻塞处理,只有当当前申请占有所述互斥锁成功的数据请求所对应数据请求为初次请求时,才进行数据调用处理,可以将预设缓存时间内的数据请求进行合并数据调用处理,将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果。这样不仅可以保证系统性能,也有效解决了域外系统的QPS压力。与现有技术相比,利用本申请实施例的技术方案可以有效应对高并发场景下的数据请求,降低系统的内存处理开销和性能损耗,解决了域外系统的QPS压力,同时可以提高返回给数据请求方的请求结果信息的准确率,改善用户体验。
尽管本申请内容中提到数据调用处理、合并数据调用处理、申请占有互斥锁等之类的数据处理的描述,但是,本申请并不局限于必须是完全标准或者所提及的数据处理应用环境的情况。本申请中各个实施例中所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些其他的支持自定义页面元素的框架中也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (14)

1.一种数据请求的处理方法,其特征在于,所述方法包括:
确定与数据请求中请求参数相对应的唯一参数标识;
获取与所述唯一参数标识相对应的参数执行器;
所述参数执行器执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;
将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果;
所述获取与所述唯一参数标识相对应的参数执行器包括:
判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器;
当所述设置的缓存中不存在与所述唯一参数标识相对应的参数执行器时,根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中;
否则,从所述设置的缓存中获取所述与所述唯一参数标识相对应的参数执行器;
所述方法还包括:
在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
2.根据权利要求1所述的方法,其特征在于,所述执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理包括:
当前进程中的数据请求申请占有所述参数执行器的互斥锁;
当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是;
当所述判断的结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,并将所述初次请求状态设置为否;
返回所述合并数据调用处理的结果,释放所述互斥锁。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述判断的结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
4.根据权利要求2或3任意一项所述的方法,其特征在于,所述方法还包括:
以所述预设缓存时间为周期,将所述初次请求状态设置为是。
5.根据权利要求2或3任意一项所述的方法,其特征在于,所述方法还包括:
当数据请求申请占有所述参数执行器的互斥锁失败时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,返回所述合并数据调用处理的结果。
6.一种数据请求的处理装置,其特征在于,所述装置包括:
唯一参数标识确定模块,用于确定与数据请求中请求参数相对应的唯一参数标识;
参数执行器,用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;
结果确定模块,用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果;
参数执行器获取模块,包括:判断单元,用于判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器;参数执行器构造存储单元,用于当所述判断单元判断的结果为否时,根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中;参数执行器获取单元,用于当所述判断单元判断的结果为是时,从所述设置的缓存中获取所述与所述唯一参数标识相对应的参数执行器;
参数执行器删除模块,用于在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
7.根据权利要求6所述的装置,其特征在于,所述参数执行器包括:
互斥锁申请单元,用于当前进程中的数据请求申请占有所述参数执行器的互斥锁;
初次请求状态判断单元,用于当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是;
第一数据调用处理单元,用于当所述初次请求状态判断单元的判断结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果;
第一初次请求状态设置单元,用于所述第一数据调用处理单元在将所述数据调用处理的结果保存到所述合并数据调用处理的结果之后,将所述初次请求状态设置为否;
第一返回释放单元,用于当所述第一数据调用处理单元将所述数据调用处理的结果保存到所述合并数据调用处理的结果之后,返回所述合并数据调用处理的结果,释放所述互斥锁。
8.根据权利要求7所述的装置,其特征在于,所述参数执行器还包括:
第二返回释放单元,用于当所述初次请求状态判断单元的判断结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
9.根据权利要求7或8任意一项所述的装置,其特征在于,所述参数执行器还包括:
第二初次请求状态设置单元,用于以所述预设缓存时间为周期,将所述初次请求状态设置为是。
10.根据权利要求7或8任意一项所述的装置,其特征在于,所述参数执行器还包括:
第二数据调用处理单元,用于当数据请求申请占有所述参数执行器的互斥锁失败时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,返回所述合并数据调用处理的结果。
11.一种数据请求的处理系统,其特征在于,所述系统包括:
存储单元,用于存储与唯一参数标识相对应的参数执行器;
处理单元,被设置成,用于确定与数据请求中请求参数相对应的唯一参数标识;还用于判断设置的缓存中是否存在与所述唯一参数标识相对应的参数执行器;当所述设置的缓存中不存在与所述唯一参数标识相对应的参数执行器时,根据所述请求参数构造与所述唯一参数标识相对应的参数执行器,并将所述参数执行器存储在所述设置的缓存中;否则,从所述设置的缓存中获取所述与所述唯一参数标识相对应的参数执行器;还用于执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理;还用于将所述合并数据调用处理的结果作为所述预设缓存时间内的数据请求的请求结果;还用于在到达所述预设缓存时间时,从所述设置的缓存中删除与所述唯一参数标识相对应的参数执行器。
12.根据权利要求11所述的系统,其特征在于,所述处理单元执行基于对所述数据请求是否为预设缓存时间内申请占用互斥锁成功的初次请求的判断结果的合并数据调用处理包括:
所述处理单元用于当前进程中的数据请求申请占有所述参数执行器的互斥锁;还用于当数据请求申请占有所述参数执行器的互斥锁成功时,判断设置的初次请求状态是否为是;还用于当所述判断的结果为是时,执行与所述请求参数相应的数据调用处理,将所述数据调用处理的结果保存到所述合并数据调用处理的结果,并将所述初次请求状态设置为否;还用于返回所述合并数据调用处理的结果,释放所述互斥锁。
13.根据权利要求12所述的系统,其特征在于,所述处理单元被设置成,还包括:
所述处理单元用于当所述判断的结果为否时,返回所述合并数据调用处理的结果,释放所述互斥锁。
14.根据权利要求12或13任意一项所述的系统,其特征在于,所述处理单元被设置成,还包括:
所述处理单元用于以所述预设缓存时间为周期,将所述初次请求状态设置为是。
CN201610216901.3A 2016-04-08 2016-04-08 一种数据请求的处理方法、装置及系统 Active CN107273216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610216901.3A CN107273216B (zh) 2016-04-08 2016-04-08 一种数据请求的处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610216901.3A CN107273216B (zh) 2016-04-08 2016-04-08 一种数据请求的处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107273216A CN107273216A (zh) 2017-10-20
CN107273216B true CN107273216B (zh) 2020-10-13

Family

ID=60052850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610216901.3A Active CN107273216B (zh) 2016-04-08 2016-04-08 一种数据请求的处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107273216B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719929A (zh) * 2009-11-20 2010-06-02 山东中创软件商用中间件股份有限公司 一种实现Web Service下实时数据传输的方法
CN102955721A (zh) * 2011-08-16 2013-03-06 阿里巴巴集团控股有限公司 一种测试用的压力生成方法及装置
CN103116634A (zh) * 2012-06-12 2013-05-22 上海雷腾软件有限公司 支持高并发缓存任务队列的系统及其异步批量操作方法
CN103870330A (zh) * 2014-03-03 2014-06-18 大唐移动通信设备有限公司 一种基于dsp的任务调度方法和装置
CN104423982A (zh) * 2013-08-27 2015-03-18 阿里巴巴集团控股有限公司 请求的处理方法和处理设备
CN104462194A (zh) * 2014-10-28 2015-03-25 北京国双科技有限公司 一种业务数据的处理方法、装置及服务器
CN105468707A (zh) * 2015-11-19 2016-04-06 北京锐安科技有限公司 一种基于缓存的数据处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719929A (zh) * 2009-11-20 2010-06-02 山东中创软件商用中间件股份有限公司 一种实现Web Service下实时数据传输的方法
CN102955721A (zh) * 2011-08-16 2013-03-06 阿里巴巴集团控股有限公司 一种测试用的压力生成方法及装置
CN103116634A (zh) * 2012-06-12 2013-05-22 上海雷腾软件有限公司 支持高并发缓存任务队列的系统及其异步批量操作方法
CN104423982A (zh) * 2013-08-27 2015-03-18 阿里巴巴集团控股有限公司 请求的处理方法和处理设备
CN103870330A (zh) * 2014-03-03 2014-06-18 大唐移动通信设备有限公司 一种基于dsp的任务调度方法和装置
CN104462194A (zh) * 2014-10-28 2015-03-25 北京国双科技有限公司 一种业务数据的处理方法、装置及服务器
CN105468707A (zh) * 2015-11-19 2016-04-06 北京锐安科技有限公司 一种基于缓存的数据处理方法及装置

Also Published As

Publication number Publication date
CN107273216A (zh) 2017-10-20

Similar Documents

Publication Publication Date Title
CN107798108B (zh) 一种异步任务查询方法及设备
US10489378B2 (en) Detection and resolution of conflicts in data synchronization
CN111447102B (zh) Sdn网络设备访问方法、装置、计算机设备及存储介质
CN107943840B (zh) 数据处理方法、系统和计算机可读存储介质
CN106940699B (zh) 一种内存数据的同步处理方法、装置、服务器及系统
TWI672027B (zh) 網頁中的資料處理方法、裝置及系統
CN106648994B (zh) 一种备份操作日志的方法,设备和系统
US20150248421A1 (en) System and method for recovering system status consistently to designed recovering time point in distributed database
CN106940671B (zh) 一种集群中任务线程运行的监控方法、装置及系统
CN110019496B (zh) 数据读写方法和系统
CN105450705A (zh) 业务数据处理方法及设备
CN115277566B (zh) 数据访问的负载均衡方法、装置、计算机设备及介质
CN112380227A (zh) 基于消息队列的数据同步方法、装置、设备及存储介质
CN105260639A (zh) 一种脸部识别系统的数据更新的方法及装置
CN107133233B (zh) 一种配置数据查询的处理方法及装置
CN103716384A (zh) 跨数据中心实现云存储数据同步的方法和装置
CN115455058A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
CN110866011B (zh) 数据表同步方法、装置、计算机设备和存储介质
CN110222046B (zh) 列表数据的处理方法、装置、服务器和存储介质
CN107273216B (zh) 一种数据请求的处理方法、装置及系统
CN107657155B (zh) 用于鉴定用户操作权限的方法和装置
CN106708869B (zh) 一种群组数据处理的方法及装置
CN111752715A (zh) 大量请求量下的系统优化方法、装置、设备及存储介质
CN114691781A (zh) 一种数据同步方法、系统、装置、设备及介质
CN115114612A (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
TR01 Transfer of patent right

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right