一种访问请求处理方法和装置与流程

文档序号:16672976发布日期:2019-01-18 23:43阅读:125来源:国知局
一种访问请求处理方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种访问请求处理方法和装置。



背景技术:

产品数据采集,是指采集用户对应用app、网页等产品触发的注册、登陆、点击、购买等各种事件数据并进行统计分析,以确定用户行为规律与喜好,进而驱动产品的进一步优化,达到提升产品收益的目的。

而由于产品数据采集需要采集大量数据,因此,会给后端服务器带来很大的压力。目前,一般是通过设置每秒请求数量(querypersecond,qps)来减轻服务器的压力,例如:当服务器请求数超过qps阈值上限,则拒绝用户请求,进而缓解了服务器的压力。

由于产品数据采集需要每个用户个体行为的详细记录,若使用上述限流方式将使得每一个用户都有可能因为流量控制达到上限而被服务器拒绝,进而,导致同一个用户的行为数据出现“断层”,影响后续用户行为分析的准确性。



技术实现要素:

本说明书实施例提供一种访问请求处理方法,用以解决现有技术存在由于用户的访问被拒绝导致的用户行为分析不准确的问题。

本说明书实施例还提供一种访问请求处理方法,包括:

接收客户端发送的访问请求,所述访问请求携带所述客户端的标识;

若所述标识不存在于预建立的标识集合中,则确定是否存在未分配的处理名额;

若存在未分配的处理名额,则为所述标识分配一处理名额并处理所述访问请求。

可选的,确定是否存在未分配的处理名额之前,还包括:

基于服务器的数据处理能力,生成预定数量的处理名额。

可选的,还包括:

基于所述服务器的数据处理能力的波动情况,调整处理名额的数量。

可选的,为所述用户标识分配一处理名额的同步或之后,还包括:

将所述用户标识加入至所述预建立的标识集合。

可选的,还包括:

若不存在未分配的处理名额,则忽略或者拒绝所述访问请求。

可选的,还包括:

若所述标识存在于所述预建立的标识集合中,则处理所述访问请求。

可选的,所述标识集合包括多个客户端对应的标识子集合,所述方法还包括:

当目标客户端满足预定条件时,回收所述目标客户端对应的标识子集合中的标识的处理名额。

可选的,还包括:

当所述标识集合中的目标标识满足预定条件时,延时处理所述访问请求,并在预设延时时间段内回收所述目标标识的处理名额。

可选的,还包括:

在预设访问低峰期回收预定数量的已分配的处理名额;

其中,所述预定数量小于已分配的处理名额总量和访问低峰期时的访问请求数之差。

本说明书实施例还提供一种访问请求处理装置,包括:

接收模块,用于接收客户端发送的访问请求,所述访问请求携带用户标识;

确定模块,用于若所述用户标识不存在于预建立的标识集合中,则确定是否存在未分配的处理名额;

处理模块,用于当存在未分配的处理名额时,为所述用户标识分配一处理名额并处理所述访问请求。

可选的,还包括:

名额生成模块,用于基于服务器的数据处理能力,生成预定数量的处理名额。

可选的,还包括:

名额调整模块,用于基于所述服务器的数据处理能力的波动情况,调整处理名额的数量。

可选的,所述处理模块,还用于:

将所述用户标识加入至所述预建立的标识集合。

可选的,所述处理模块,还用于:

若不存在未分配的处理名额,则忽略或者拒绝所述访问请求。

可选的,所述处理模块,还用于:

若所述用户标识存在于所述预建立的标识集合中,则处理所述访问请求。

可选的,所述标识集合包括多个客户端对应的标识子集合,还包括:

名额回收模块,用于当目标客户端满足预定条件时,回收所述目标客户端对应的标识子集合中的用户标识的处理名额。

可选的,名额回收模块,还用于:

当所述标识集合中的目标标识满足预定条件时,延时处理所述访问请求,并在预设延时时间段内回收所述目标标识的处理名额。

可选的,名额回收模块,还用于:

在预设访问低峰期回收预定数量的已分配的处理名额;

其中,所述预定数量小于已分配的处理名额总量和访问低峰期时的访问请求数之差。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过引入服务器处理用户的访问请求的‘处理名额’的概念,以在接收到携带用户标识的访问请求,且确定用户标识不存在预建立的标识集合中后,检测服务器是否还有未分配的处理名额,若是,则为该用户标识分配一处理名额并处理所述用户标识对应的访问请求。由此,可确保标识集合中的用户标识和分配有处理名额的用户标识的用户的访问请求不会被服务器拒绝,进而确保后续对这些用户的行为分析的准确性。与现有技术中,限制服务器单位时间内需要处理的访问请求数的方案相比,能够有效避免由于流量控制达到上限而被服务器拒绝导致的同一用户的行为数据出现‘断层’,进而影响后续用户行为分析的准确性的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本说明书提供的一种应用场景的示意图;

图2为本说明书提供的一种访问请求处理方法的流程示意图;

图3为本说明书提供的一种访问请求处理方法中回收处理名额步骤的流程示意图;

图4为本说明书提供的一种访问请求处理装置的结构示意图;

图5为本说明书提供的一种电子设备的结构示意图。

具体实施方式

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

正如背景技术部分陈述的,目前市面上各产品大多是通过服务器端qps限制来减轻服务器的压力。具体做法包括:通过qps控制进入服务器的请求数,当服务器请求数超过qps阈值上限,则拒绝用户请求,进而缓解了服务器的压力。

而在互联网产品数据采集领域,每个用户个体行为都需要详细记录,上面所述控制流量的方式是在不记录用户的前提下进行,每一个用户都可能因为流量控制达到上限而被服务器拒绝。这样导致同一个用户的行为数据出现“断层”,会带来后续用户行为分析的不准确性。

基于此,本发明提供一种访问请求处理方法,通过引入服务器处理用户的访问请求的‘处理名额’的概念,可确保标识集合中的用户标识和分配有处理名额的用户标识的用户的访问请求不会被服务器拒绝,进而确保后续对这些用户的行为分析的准确性。与现有技术相比,能够有效避免由于流量控制达到上限而被服务器拒绝导致的同一用户的行为数据出现‘断层’,进而影响后续用户行为分析的准确性的问题。

下面参见图1对本发明的应用场景进行示例性说明。

该应用场景中包括:服务器和多个客户端,其中:

客户端,用于采集用户在客户端界面进行的操作,并以访问请求形式发送至服务器;

服务器,用于基于客户端发送的访问请求,对用户行为进行统计分析,以得出用户行为分析结果。

其中,用户行为包括:点击、收藏、浏览时长、交易渠道、交易结果等等;用户终端可以为pc端,也可以为移动终端或者叫移动通信终端是指可以在移动中使用的计算机设备,广义的讲包括手机、笔记本、平板电脑、pos机甚至包括车载电脑。但是大部分情况下是指手机或者具有多种应用功能的智能手机以及平板电脑。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图2为本说明书提供的一种访问请求处理方法的流程示意图,该方法可由图1中的服务器执行,参见图2,具体可以包括如下步骤:

步骤202、接收客户端发送的访问请求,所述访问请求携带用户标识;

其中,用户标识可以为用户账号、客户端的唯一标识码等等,访问请求用于请求服务器上传该用户标识对应的用户行为数据。

步骤204、确定所述用户标识是否存在与预建立的标识集合;

若是,则执行步骤210;若否,则执行步骤206;

步骤206、确定是否存在未分配的处理名额;

若是,则执行步骤208,若否,则流程结束;

其中,处理名额用于表示服务器可处理的访问请求数量,例如:总的处理名额为10k,剩余未分配的处理名额为2k,则说明服务器能处理的访问请求数为10k,当前已分配给用户处理名额为8k个,剩余的待分配给用户的处理名额为2k个;

步骤208、为所述用户标识分配一处理名额;

步骤210、处理所述访问请求,流程结束。

对于步骤204-步骤210,需要说明的是,其一种实现方式可以为:

服务器预先建立一标识集合,该标识集合可以为空,也可以预存入一部分用户标识,该预存部分的用户标识可以不占用处理名额;同步基于服务器的数据处理能力,生成预定数量的处理名额;其中,服务器的数据处理能力可基于对服务器的监控信息情况获得,此处不限定其具体实现方式。

然后,当接收到携带用户标识的访问请求时,先将该用户标识与标识集合中的用户标识进行对比,若该用户标识已存在于标识集合中,则处理该访问请求;若该用户标识未存在与标识集合中,则检测是否还有未分配的处理名额,若否,则说明服务器的请求数已达到预定上限,则忽略或者拒绝该访问请求;若是,则为该用户标识分配一处理名额并处理该访问请求,并选择性地将该用户标识加入至所述预建立的标识集合,以便后续接收到携带该用户标识的访问请求时,直接处理即可。

可选的,服务器的数据处理能力可能会发生波动,例如:经过升级、优化服务器的数据处理能力得到了加强,则其可处理的访问请求的数量也将对应增加,因此,为灵活调整服务器的压力状态,方法还包括:

基于所述服务器的数据处理能力的波动情况,调整处理名额的数量。

例如:当服务器的数据处理能力增加时,则增加处理名额的数量;若服务器的数据处理能力减小时,则确定是否还有未分配的处理名额,若是,则减小处理名额的数量,若否,则保持处理名额的数量不变。

可选的,对于处理名额使用完毕、分配的处理名额过多、分配的处理名额数量发生变化等情况,为提高处理名额的使用率,可回收已分配出的处理名额以供重分配。具体可示例为:

情况1、所述标识集合包括多个客户端对应的标识子集合,即每个应用的客户端具有一个单独的标识子集合;

当多个客户端中的目标客户端满足预定条件时,回收所述目标客户端对应的标识子集合中的用户标识的处理名额。

其中,预定条件至少包括如下一个或多个:

对目标客户端应用的用户行为分析作业完成或终止等;

目标客户端的处理权重发生,处理权重是指占用服务器的处理名额的比例,可取决与目标客户端要求的用户行为分析精度、效率等等,例如:要求的期限越长、精度越低,单位时间内需要的处理名额则越低。

情况2、当所述标识集合中的目标标识满足预定条件时,延时处理所述访问请求,并在预设延时时间段内回收所述目标标识的处理名额。具体可以示例为:

步骤320、服务器记录标识集合中每个用户标识持有处理名额的时长;

步骤340、选出持有时长大于预定时长阈值的用户标识,记为目标标识;

步骤360、将该目标标识对应的访问请求放入处理队列中进行延时处理,并在延时时间段内回收将目标标识的处理名额,以供重分配给其他用户标识。

即,情况2通过记录长时间持有处理名额的访问请求,并延时处理该访问请求,以在延时处理的时间段内将该访问请求的处理名额分配给其他用户的访问请求,以进一步地提供处理名额的使用率。

情况3、在预设访问低峰期回收预定数量的已分配的处理名额;

其中,预设访问低峰期可以指服务器基于历史访问数据确定的访问请求数小于预定阈值的时间段,对应的访问高峰期可以指访问请求数高于预定阈值的时间段。

对于这种访问请求数的波动情况,不难理解的是,当处于访问低峰期时,由于分配出的处理名额远远大于实际接收到的有处理名额的访问请求数,而其他没有处理名额的访问请求的用户行为数据无法被采集,导致处理名额的浪费。

由此,情况3通过在访问低峰期对应的时间段回收预定数量的处理名额并分配给没有处理名额的访问请求,以增加可采集的用户行为数据。该预定数量小于已分配的处理名额总量和访问低峰期时的访问请求数之差。具体可以示例为:

假设服务器生成的处理名额为10k,并已分配给各用户标识,高峰期时的访问请求数为9k,低峰期时的访问请求数为2k;

在低峰期的时间段,可能有10k-2k=8k的处理名额被浪费,因此,可回收小于8k的处理名额,并将其分配给其他没有处理名额的用户标识,以增加可统计分析的用户行为数据;

在高峰期的时间段,再将低峰期分配出的处理名额收回并归还给原用户标识。

可见,本实施例通过引入服务器处理用户的访问请求的‘处理名额’的概念,以在接收到携带用户标识的访问请求,且确定用户标识不存在预建立的标识集合中后,检测服务器是否还有未分配的处理名额,若是,则为该用户标识分配一处理名额并处理所述用户标识对应的访问请求。由此,可确保标识集合中的用户标识和分配有处理名额的用户标识的用户的访问请求不会被服务器拒绝,进而确保后续对这些用户的行为分析的准确性。与现有技术中,限制服务器单位时间内需要处理的访问请求数的方案相比,能够有效避免由于流量控制达到上限而被服务器拒绝导致的同一用户的行为数据出现‘断层’,进而影响后续用户行为分析的准确性的问题。

另外,对于上述方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。

图4为本说明书提供的一种访问请求处理装置的结构示意图,参见图4,该装置具体可以包括:接收模块41、确定模块42和处理模块43,其中:

接收模块41,用于接收客户端发送的访问请求,所述访问请求携带用户标识;

确定模块42,用于若所述用户标识不存在于预建立的标识集合中,则确定是否存在未分配的处理名额;

处理模块43,用于当存在未分配的处理名额时,为所述用户标识分配一处理名额并处理所述访问请求。

可选的,装置还包括:

名额生产模块,用于基于服务器的数据处理能力,生成预定数量的处理名额。

可选的,名额生产模块,还用于:

基于所述服务器的数据处理能力的波动情况,调整处理名额的数量。

可选的,处理模块43,还用于:

将所述用户标识加入至所述预建立的标识集合。

可选的,处理模块43,还用于:

若不存在未分配的处理名额,则忽略所述访问请求。

可选的,处理模块43,还用于:

若所述用户标识存在于所述预建立的标识集合中,则处理所述访问请求。

其中,所述标识集合包括多个客户端对应的标识子集合;

可选的,所述装置还包括:

名额回收模块,用于当目标客户端满足预定条件时,回收所述目标客户端对应的标识子集合中的标识的处理名额。

可选的,名额回收模块,还用于:

当所述标识集合中的目标标识满足预定条件时,延时处理所述访问请求,并在预设延时时间段内回收所述目标标识的处理名额。

可选的,名额回收模块,还用于:

在预设访问低峰期回收预定数量的处理名额;

其中,所述预定数量小于已分配的处理名额总量和访问低峰期时的访问请求数之差。

可见,本实施例通过引入服务器处理用户的访问请求的‘处理名额’的概念,以在接收到携带用户标识的访问请求,且确定用户标识不存在预建立的标识集合中后,检测服务器是否还有未分配的处理名额,若是,则为该用户标识分配一处理名额并处理所述用户标识对应的访问请求。由此,可确保标识集合中的用户标识和分配有处理名额的用户标识的用户的访问请求不会被服务器拒绝,进而确保后续对这些用户的行为分析的准确性。与现有技术中,限制服务器单位时间内需要处理的访问请求数的方案相比,能够有效避免由于流量控制达到上限而被服务器拒绝导致的同一用户的行为数据出现‘断层’,进而影响后续用户行为分析的准确性的问题。

另外,对于上述装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。而且,应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。

图5为本说明书提供的一种电子设备的结构示意图,参见图5,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成访问请求处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器。

处理器,用于执行所述存储器存放的程序,并具体执行:

接收客户端发送的访问请求,所述访问请求携带用户标识;

若所述用户标识不存在于预建立的标识集合中,则确定是否存在未分配的处理名额;

若是,则为所述用户标识分配一处理名额并处理所述访问请求。

上述如本申请图4所示实施例揭示的访问请求处理装置或管理者(master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

访问请求处理装置还可执行图2-3的方法,并实现管理者节点执行的方法。

基于相同的发明创造,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行图2-3对应的实施例提供的访问请求处理方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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