CN111049756A - 请求响应方法、装置、电子设备及计算机可读存储介质 - Google Patents

请求响应方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111049756A
CN111049756A CN201911345578.XA CN201911345578A CN111049756A CN 111049756 A CN111049756 A CN 111049756A CN 201911345578 A CN201911345578 A CN 201911345578A CN 111049756 A CN111049756 A CN 111049756A
Authority
CN
China
Prior art keywords
request
token
historical
preset
buffer pool
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.)
Granted
Application number
CN201911345578.XA
Other languages
English (en)
Other versions
CN111049756B (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911345578.XA priority Critical patent/CN111049756B/zh
Publication of CN111049756A publication Critical patent/CN111049756A/zh
Application granted granted Critical
Publication of CN111049756B publication Critical patent/CN111049756B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明实施例提供了一种请求响应方法、装置、电子设备及计算机可读存储介质,按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。应用本发明,可以根据获取到的信息,实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。

Description

请求响应方法、装置、电子设备及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种请求响应方法、装置、电子设备及计算机可读存储介质。
背景技术
在使用网络时,很多场景下会出现网络拥挤的并发问题,即在单位时间内,大量请求同时发起到服务器,比如商品秒杀、商品抢购、学校系统抢课、考研报名、抢票等场景。然而服务器的响应能力是有限的,在请求超过服务器响应能力时,如果不对请求响应速率进行限制,会使得服务器运行缓慢,甚至崩溃。
现有技术通常采用令牌桶算法对请求响应进行限制,令牌桶为服务器中虚拟的限速模块,令牌为虚拟信息包,令牌桶中存有多个令牌,通过分发令牌实现对请求的响应,响应请求会消耗令牌桶中的令牌,令牌桶相当于请求响应的限制关卡,令牌相当于是否进行响应的凭证,只有分发了令牌的请求才会进行响应,而令牌在不断生成和消耗,令牌桶中的令牌数量是有限的,以此来限制请求响应的速率。传统的令牌桶算法中,令牌桶容量和令牌生成速度为固定值,服务器以设定生成速度产生令牌填充令牌桶,如果令牌桶未满则将令牌放入令牌桶,如果令牌桶已满则将令牌丢弃,请求到达时,如果有令牌则接受请求,如果没有令牌则丢弃请求。
实际上服务器与请求方之间的通信是很复杂的,请求方的数量以及请求方发起请求的时间都是不确定的,因此接收到请求的速率、数据量等都不是固定的,采用传统的令牌桶算法,如果出现大量请求时,令牌数量不能满足需求,将导致大量请求被抛弃,因此利用传统的令牌桶进行请求响应,不能根据实际情况进行自适应调整,实际进行请求响应的服务质量较差。
发明内容
本发明实施例的目的在于提供一种请求响应方法、装置、电子设备及计算机可读存储介质,以提高请求响应服务质量。具体技术方案如下:
第一方面,本发明实施例提供一种请求响应方法,所述方法包括:
按照预设周期,获取响应历史请求时生成的历史记录信息,所述历史记录信息包括历史请求的请求响应时长;
根据所述历史记录信息,调整令牌生成速度,并根据调整后的所述令牌生成速度生成令牌;
在当前周期接收到请求时,向所述请求分发令牌,响应携带有令牌的请求。
特别的,所述根据所述历史记录信息,调整令牌生成速度,包括:
根据所述请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数;
若所述历史请求次数大于或等于预设次数,则清空所述令牌桶,并调低令牌生成速度。
特别的,所述历史记录信息还包括:令牌桶状态信息以及缓冲池的历史状态信息,所述令牌桶状态信息包括未丢弃过令牌;
所述根据所述历史记录信息,调整令牌生成速度,包括:
根据所述缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率;
若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、所述历史频率大于或等于预设频率且所述令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
特别的,在所述按照预设周期,获取响应历史请求时生成的历史记录信息之前,所述方法还包括:
通过压力测试,获得响应请求的响应峰值;
根据所述响应峰值,设置令牌桶容量、令牌生成速度及缓冲池容量的初始值。
特别的,在所述根据调整后的所述令牌生成速度生成令牌之后,所述方法还包括:
获取所述令牌桶的剩余容量;
若所述令牌桶的剩余容量大于或等于第一预设容量,则将生成的令牌存入所述令牌桶;
若所述令牌桶的剩余容量小于所述第一预设容量,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
特别的,所述向所述请求分发令牌,响应携带有令牌的请求,包括:
若所述令牌桶中存在令牌,则向所述请求分发令牌,响应携带有令牌的请求,并记录所述请求的请求响应时长。
特别的,在所述令牌桶中不存在令牌时,所述方法还包括:
获取所述缓冲池的剩余容量;
若所述缓冲池的剩余容量大于或等于第二预设容量,则将所述请求存入所述缓冲池;
若所述缓冲池的剩余容量小于所述第二预设容量,则丢弃所述请求,并记录所述缓冲池的当前状态信息为满。
特别的,在所述根据调整后的所述令牌生成速度生成令牌之后,所述方法还包括:
按照预设间隔,向所述缓冲池中的请求分发令牌,响应所述缓冲池中的请求。
第二方面,本发明实施例提供一种请求响应装置,所述装置包括:
第一获取模块,用于按照预设周期,获取响应历史请求时生成的历史记录信息,所述历史记录信息包括历史请求的请求响应时长;
调整模块,用于根据所述历史记录信息,调整令牌生成速度,并根据调整后的所述令牌生成速度生成令牌;
响应模块,用于在当前周期接收到请求时,向所述请求分发令牌,响应携带有令牌的请求。
特别的,所述调整模块具体用于:
根据所述请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数;
若所述历史请求次数大于或等于预设次数,则清空所述令牌桶,并调低令牌生成速度。
特别的,所述历史记录信息还包括:令牌桶状态信息以及缓冲池的历史状态信息,所述令牌桶状态信息包括未丢弃过令牌;
所述调整模块具体还用于:
根据所述缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率;
若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、所述历史频率大于或等于预设频率且所述令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
特别的,所述装置还包括:
第二获取模块,用于获取所述令牌桶的剩余容量;
第二存放模块,用于若所述令牌桶的剩余容量大于或等于第一预设容量,则将生成的令牌存入所述令牌桶;
第二丢弃模块,用于若所述令牌桶的剩余容量小于所述第一预设容量,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
特别的,所述装置还包括:
请求模块,用于按照预设间隔,向所述缓冲池中的请求分发令牌,响应所述缓冲池中的请求。
第三方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的所述计算机程序时,实现上述方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明实施例提供的请求响应方法、装置、电子设备及计算机可读存储介质,可以按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
请求响应时长反映了处理请求的效率,应用本发明,根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种请求响应方法流程图。
图2为本发明实施例提供的一种调低令牌生成速度的请求响应方法流程图。
图3为本发明实施例提供的一种调高令牌生成速度的请求响应方法流程图。
图4为本发明实施例提供的一种带初始化的请求响应方法流程图。
图5为本发明实施例提供的另一种请求响应方法流程图。
图6为本发明实施例提供的一种带缓冲池的请求响应方法流程图。
图7为本发明实施例提供的一种响应缓冲池请求的请求响应方法流程图。
图8为本发明实施例提供的一种请求响应方法的整体示意图。
图9为本发明实施例提供的一种请求响应装置结构示意图。
图10为本发明实施例提供的另一种请求响应装置结构示意图。
图11为本发明实施例提供的另一种请求响应装置结构示意图。
图12为本发明实施例提供的另一种请求响应装置结构示意图。
图13为本发明实施例提供的另一种请求响应装置结构示意图。
图14为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种请求响应方法,参见图1,该方法包括:
S101:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S102:根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
S103:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
请求响应时长反映处理请求的效率,应用本发明,根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。
本发明实施例中,在服务器运行的过程中,响应请求时生成的信息会不断被记录到预设数据库中,在每个预设周期内,使用获取命令执行获取程序,获取该周期之前的历史记录信息,历史记录信息包括历史请求的请求响应时长,并根据获取到的历史记录信息,调整该周期内的令牌生成速度,在当前周期根据调整后的令牌生成速度生成令牌。例如,每10s为一个周期,第一个周期为1s-10s,第二个周期为11s-20s,则在第11s时,获取1s-10s内的历史记录信息,并根据该历史记录信息,调整第11s-20s内的令牌生成速度,在第11s-20s内根据调整后的令牌生成速度生成令牌,接收到请求时,执行向请求分发令牌的动作,存在请求分发到令牌和请求没有分发到令牌两种情况,响应携带有令牌的请求。
其中,调整令牌生成速度包括调低、调高和不变。
特别的,基于图1所示实施例,本发明实施例提供了另一种请求响应方法,参见图2,该方法包括:
S201:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S202:根据请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数。
S203:若历史请求次数大于或等于预设次数,则清空令牌桶,并调低令牌生成速度,根据调整后的令牌生成速度生成令牌。
S204:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本发明实施例中,请求响应时长超过预设响应时长,即执行具体服务业务超时,超时次数过多,即大于或等于预设次数时,表明服务器当前服务压力过大导致处理效率较低,此时应当限制请求数量,因此清空令牌桶,并调低令牌生成速度,令牌减少则通过的请求变少,达到限制作用,缓解服务器的压力。
其中,第一预设时段为当前周期之前的某一个时间段,比如当前周期为第11s-20s,第一预设时段为1s,则第一预设时段为第11s之前的任意1s,第一预设时段、预设响应时长和预设次数可以根据需求进行设定,预设次数可以设置为2次、5次、6次、20次等等,预设时段内超时次数越多表明当前服务压力越大。
特别的,基于图1所示实施例,本发明实施例提供了另一种请求响应方法,参见图3,该方法包括:
S301:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长、令牌桶状态信息以及缓冲池的历史状态信息,令牌桶状态信息包括未丢弃过令牌。
S302:根据缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率。
S303:若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、历史频率大于或等于预设频率且令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
S304:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本发明实施例中,令牌桶状态信息包括丢弃过令牌和未丢弃过令牌。缓冲池用于在令牌桶为空时缓存请求,令牌桶为空表明没有令牌可供使用,不能对请求进行响应,即请求溢出,对于溢出的请求优先放入到缓冲池中,而不是直接丢弃,通过缓冲池扩充请求处理峰值,提高服务质量。缓冲池的状态包括满和不满,在一定时间内,统计缓冲池的历史状态信息,根据状态为满的次数与总统计次数的比值,得到缓冲池的状态为满的历史频率。比如统计100次历史状态信息,其中有70次是满,30次为不满,则为满的历史频率为0.7。本发明实施例中,可以统计从开始到当前的历史频率,也可以统计第二预设时段内的历史频率。第二预设时段为当前周期之前的某一个时间段,可以根据需求设定时长,比如20s、45s、1min等等。
请求响应时长小于或等于预设响应时长,表明当前接收到的请求可以快速处理,服务器运行状态没有出现异常;令牌桶状态信息为未丢弃过令牌,表明令牌消耗速度大于令牌的生成速度;缓冲池状态为满的历史频率大于或等于预设频率,表明缓冲池经常是满的,说明请求量很多;而大量请求到达时没有令牌可以使用才会存入缓冲池,此时,令牌的数量不能满足到达的请求数量,而服务器运行状态没有出现异常,因此,调高令牌生成速度,以响应更多的请求,避免大量请求被抛弃的情况出现。
缓冲池的历史状态信息反映请求数量,令牌桶状态信息反映令牌消耗速度,根据令牌桶状态信息和缓冲池的历史状态信息,可以实时判断令牌桶中的令牌是否满足接收的请求数量,同时根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。
特别的,基于图1所示实施例,参见图4,本发明实施例提供了另一种请求响应方法,该方法包括:
S401:通过压力测试,获得响应请求的响应峰值。
S402:根据响应峰值,设置令牌桶容量、令牌生成速度及缓冲池容量的初始值。
S403:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S404:根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
S405:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本发明实施例中,请求响应方法对应的计算机程序需要设置初始值才可以执行,因此,进行压力测试,获得单位时间内的响应峰值,根据响应峰值,按照预设系数,初始化令牌桶容量、令牌生成速度及缓冲池容量,即设置参数的初始值。比如通过压力测试,获得服务器的QPS(Query Per Second,每秒查询率,表示服务器每秒能够响应的请求次数)为T,然后初始化令牌桶容量为T*0.1,初始化令牌产生速率为T*0.9,初始化缓冲池大小为T*0.2,其中0.1、0.9、0.2为预设系数,预设系数可以根据实际情况设定。在未调整之前,按照初始化的令牌生成速度生成令牌。
特别的,参见图5,对于生成令牌,本发明实施例提供了另一种请求响应方法,该方法还包括:
S501:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S502:根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
S503:获取令牌桶的剩余容量。
S504:判断令牌桶的剩余容量是否大于或等于第一预设容量,若是则执行S505,否则执行S506。
S505:将生成的令牌存入令牌桶。
S506:丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
S507:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本发明实施例中,对令牌桶的剩余容量预先设定第一预设容量,若令牌桶的剩余容量大于或等于第一预设容量,则令牌桶未满;若令牌桶的剩余容量小于第一预设容量,则令牌桶为满,此处满包括将满或已满,表明令牌桶容量不足,继续放入会使令牌溢出令牌桶外。令牌桶未满,则将生成的令牌存入令牌桶。令牌桶容量不足,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。比如,令牌桶容量为100,第一预设容量为20,当令牌桶的剩余容量大于或等于20时,将生成的令牌存入令牌桶;当令牌桶的剩余容量小于20时,则丢弃生成的令牌。如果令牌桶的容量没有限制,则生成的令牌可以无限制放入令牌桶,请求到达时很少存在令牌不足的情况,则使网络拥挤,服务器需要不断处理请求,容易导致服务器压力过大,处理效率降低。因此对令牌桶的容量进行限制,有利于提高服务质量。
特别的,参见图6,在当前周期接收到请求时,本发明实施例提供了另一种请求响应方法,该方法包括:
S601:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S602:根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
S603:判断令牌桶中是否存在令牌,若是则执行S604,否则执行S605。
S604:向请求分发令牌,响应携带有令牌的请求,并记录请求的请求响应时长。
S605:获取缓冲池的剩余容量。
S606:判断缓冲池的剩余容量是否大于或等于第二预设容量,若是则执行S607,否则执行S608。
S607:将请求存入缓冲池。
S608:丢弃请求,并记录缓冲池的当前状态信息为满。
本发明实施例中,请求序列到达时,判断令牌桶中是否存在令牌,即令牌桶是否为空、是否有令牌可用。若令牌桶存在令牌,则向请求分发令牌,响应携带有令牌的请求,执行具体服务业务,并记录请求的请求响应时长。若令牌桶中不存在令牌,当前请求不能被响应,则获取缓冲池的剩余容量,判断缓冲池是否有剩余容量去缓存不能被响应的请求。若有剩余容量,即剩余容量大于或等于第二预设容量,则将请求存入缓冲池。若没有剩余容量,即剩余容量小于第二预设容量,则丢弃请求,并记录缓冲池的当前状态信息为满。其中,第二预设容量为预先设定的。比如,缓冲池容量为100,第二预设容量为20,剩余容量大于或等于20则有剩余容量,剩余容量小于20则没有剩余容量。不同于溢出的请求直接抛弃的策略,本发明实施例中通过缓冲池扩充流量处理峰值,将溢出的请求优先放入缓冲池,从而提高请求响应的服务质量。
特别的,参见图7,对于存入缓冲池中的请求,本发明实施例还提供了另一种请求响应方法,该方法包括:
S701:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
S702:根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
S703:按照预设间隔,向缓冲池中的请求分发令牌,响应缓冲池中的请求。
S704:在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本发明实施例中,对于存入缓冲池中的请求,按照预设的时间间隔,重新去获取令牌,服务器向缓冲池中的请求分发令牌,响应缓冲池中的请求。当新的请求到达获取令牌与缓冲池中的请求获取令牌同时发生时,对新的请求和缓冲池中的请求同时进行处理,处理方法可以是随机选择请求进行响应,也可以按照时间优先级响应缓冲池中的请求。
总之,参见图8,为本发明实施例提供的请求响应方法的整体示意图。服务器按照令牌生成速度不断生成新的令牌,判断令牌是否满,如果否,则将令牌存入令牌桶,如果是,则丢弃令牌,并将丢弃令牌的动作记录到Mysql数据库中,更新令牌桶状态信息为丢弃过令牌。当接收到请求时,请求序列在拦截器处被控制,判断令牌桶是否为空,若否,则允许请求序列通过,并到达令牌桶拿到分发的令牌,进而响应请求,执行具体服务相关业务,并将请求响应时长记录到Mysql数据库中。若令牌桶是空,则在缓冲池未满,即有剩余容量时,将请求存入缓冲池;在缓冲池满时,即没有剩余容量时,丢弃请求,并将缓冲池的状态信息为满记录到Mysql数据库中。服务器按照预设间隔,向缓冲池中的请求分发令牌,响应缓冲池中的请求。按照预设周期,根据Mysql数据库中记录的令牌桶状态信息、请求响应时长、缓冲池的状态信息,调整令牌生成速度,并按照调整后的生成新的令牌,重复图8所示的过程。
本发明实施例新增了缓冲池,对于溢出的请求优先放入到缓冲池中,然后针对缓冲池和令牌桶的历史情况,以及请求响应的情况反馈,预估服务处理能力,动态调整令牌生产速率,实现服务器资源的有效利用。
第二方面,本发明实施例提供一种请求响应装置,参见图9,该装置包括第一获取模块910、调整模块920、响应模块930,其中:
第一获取模块910,用于按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
调整模块920,用于根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
响应模块930,用于在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
应用本发明,根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。
特别的,调整模块920具体可以用于:
根据请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数;
若历史请求次数大于或等于预设次数,则清空令牌桶,并调低令牌生成速度。
特别的,调整模块920具体还可以用于:
根据缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率;
若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、历史频率大于或等于预设频率且令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
特别的,参见图10,本发明实施例提供另一种请求响应装置,该装置包括:
测试模块1010,用于通过压力测试,获得响应请求的响应峰值;
初始化模块1020,用于根据响应峰值,设置令牌桶容量、令牌生成速度及缓冲池容量的初始值。
第一获取模块1030,用于按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
调整模块1040,用于根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
响应模块1050,用于在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
特别的,参见图11,本发明实施例还提供了另一种请求响应装置,该装置包括:
第一获取模块1110,用于按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
调整模块1120,用于根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
第二获取模块1130,用于获取令牌桶的剩余容量。
第二存放模块1140,用于若令牌桶的剩余容量大于或等于第一预设容量,则将生成的令牌存入令牌桶。
第二丢弃模块1150,用于若令牌桶的剩余容量小于第一预设容量,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
响应模块1160,用于在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
特别的,对于响应请求,参见图12,本发明实施例还提供了另一种请求响应装置,该装置包括:
第一获取模块1210,用于按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
调整模块1220,用于根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
响应模块1230,用于若令牌桶中存在令牌,则向请求分发令牌,响应携带有令牌的请求,并记录请求的请求响应时长。
第三获取模块1240,用于在令牌桶中不存在令牌时,获取缓冲池的剩余容量。
第三存放模块1250,用于若缓冲池的剩余容量大于或等于第二预设容量,则将请求存入所述缓冲池。
第三丢弃模块1260,用于若缓冲池的剩余容量小于第二预设容量,则丢弃请求,并记录缓冲池的当前状态信息为满。
特别的,参见图13,本发明实施例还提供了另一种请求响应装置,该装置包括:
第一获取模块1310,用于按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长。
调整模块1320,用于根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌。
请求模块1330,用于按照预设间隔,向缓冲池中的请求分发令牌,响应缓冲池中的请求。
响应模块1340,用于在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
第三方面,本发明实施例提供一种电子设备,参见图14,该电子设备包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401、通信接口1402、存储器1403通过通信总线1404完成相互间的通信;
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的计算机程序时,至少实现如下步骤:
按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;
根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;
在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,处理器1401通过读取存储器1403中存储的机器可执行指令,被机器可执行指令促使能够实现:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。应用本发明,根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。
第四方面,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时至少实现如下步骤:
按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;
根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;
在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
本实施例中,机器可读存储介质在运行时执行本发明实施例所提供的方法的计算机程序,因此能够实现:按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。应用本发明,根据请求响应时长可以实时预估服务器是否能够及时响应接收的请求,进而对令牌生成速度进行动态调整,以响应不同程度的请求数量,提高服务质量。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机至少执行如下步骤:
按照预设周期,获取响应历史请求时生成的历史记录信息,历史记录信息包括历史请求的请求响应时长;
根据历史记录信息,调整令牌生成速度,并根据调整后的令牌生成速度生成令牌;
在当前周期接收到请求时,向请求分发令牌,响应携带有令牌的请求。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD(Digital Versatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid StateDisk,固态硬盘))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (15)

1.一种请求响应方法,其特征在于,所述方法包括:
按照预设周期,获取响应历史请求时生成的历史记录信息,所述历史记录信息包括历史请求的请求响应时长;
根据所述历史记录信息,调整令牌生成速度,并根据调整后的所述令牌生成速度生成令牌;
在当前周期接收到请求时,向所述请求分发令牌,响应携带有令牌的请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述历史记录信息,调整令牌生成速度,包括:
根据所述请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数;
若所述历史请求次数大于或等于预设次数,则清空所述令牌桶,并调低令牌生成速度。
3.根据权利要求1所述的方法,其特征在于,所述历史记录信息还包括:令牌桶状态信息以及缓冲池的历史状态信息,所述令牌桶状态信息包括未丢弃过令牌;
所述根据所述历史记录信息,调整令牌生成速度,包括:
根据所述缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率;
若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、所述历史频率大于或等于预设频率且所述令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
4.根据权利要求1所述方法,其特征在于,在所述按照预设周期,获取响应历史请求时生成的历史记录信息之前,所述方法还包括:
通过压力测试,获得响应请求的响应峰值;
根据所述响应峰值,设置令牌桶容量、令牌生成速度及缓冲池容量的初始值。
5.根据权利要求1所述的方法,其特征在于,在所述根据调整后的所述令牌生成速度生成令牌之后,所述方法还包括:
获取所述令牌桶的剩余容量;
若所述令牌桶的剩余容量大于或等于第一预设容量,则将生成的令牌存入所述令牌桶;
若所述令牌桶的剩余容量小于所述第一预设容量,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
6.根据权利要求1所述的方法,其特征在于,所述向所述请求分发令牌,响应携带有令牌的请求,包括:
若所述令牌桶中存在令牌,则向所述请求分发令牌,响应携带有令牌的请求,并记录所述请求的请求响应时长。
7.根据权利要求6所述的方法,其特征在于,在所述令牌桶中不存在令牌时,所述方法还包括:
获取所述缓冲池的剩余容量;
若所述缓冲池的剩余容量大于或等于第二预设容量,则将所述请求存入所述缓冲池;
若所述缓冲池的剩余容量小于所述第二预设容量,则丢弃所述请求,并记录所述缓冲池的当前状态信息为满。
8.根据权利要求1所述的方法,其特征在于,在所述根据调整后的所述令牌生成速度生成令牌之后,所述方法还包括:
按照预设间隔,向所述缓冲池中的请求分发令牌,响应所述缓冲池中的请求。
9.一种请求响应装置,其特征在于,所述装置包括:
第一获取模块,用于按照预设周期,获取响应历史请求时生成的历史记录信息,所述历史记录信息包括历史请求的请求响应时长;
调整模块,用于根据所述历史记录信息,调整令牌生成速度,并根据调整后的所述令牌生成速度生成令牌;
响应模块,用于在当前周期接收到请求时,向所述请求分发令牌,响应携带有令牌的请求。
10.根据权利要求9所述的装置,其特征在于,所述调整模块具体用于:
根据所述请求响应时长,统计第一预设时段内请求响应时长超过预设响应时长的历史请求次数;
若所述历史请求次数大于或等于预设次数,则清空所述令牌桶,并调低令牌生成速度。
11.根据权利要求9所述的装置,其特征在于,所述历史记录信息还包括:令牌桶状态信息以及缓冲池的历史状态信息,所述令牌桶状态信息包括未丢弃过令牌;
所述调整模块具体还用于:
根据所述缓冲池的历史状态信息,统计缓冲池的状态为满的历史频率;
若第二预设时段内历史请求的请求响应时长小于或等于预设响应时长、所述历史频率大于或等于预设频率且所述令牌桶状态信息为未丢弃过令牌,则调高令牌生成速度。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述令牌桶的剩余容量;
第二存放模块,用于若所述令牌桶的剩余容量大于或等于第一预设容量,则将生成的令牌存入所述令牌桶;
第二丢弃模块,用于若所述令牌桶的剩余容量小于所述第一预设容量,则丢弃生成的令牌,并更新令牌桶状态信息为丢弃过令牌。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
请求模块,用于按照预设间隔,向所述缓冲池中的请求分发令牌,响应所述缓冲池中的请求。
14.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的所述计算机程序时,实现权利要求1-8任一所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法。
CN201911345578.XA 2019-12-24 2019-12-24 请求响应方法、装置、电子设备及计算机可读存储介质 Active CN111049756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911345578.XA CN111049756B (zh) 2019-12-24 2019-12-24 请求响应方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911345578.XA CN111049756B (zh) 2019-12-24 2019-12-24 请求响应方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111049756A true CN111049756A (zh) 2020-04-21
CN111049756B CN111049756B (zh) 2023-04-07

Family

ID=70238865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911345578.XA Active CN111049756B (zh) 2019-12-24 2019-12-24 请求响应方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111049756B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质
CN113067875A (zh) * 2021-03-24 2021-07-02 厦门立林科技有限公司 基于微服务网关动态流控的访问方法和装置以及设备
CN113630332A (zh) * 2021-08-05 2021-11-09 百融云创科技股份有限公司 一种分布式多级动态限流方法及系统
CN114124829A (zh) * 2021-09-26 2022-03-01 新华三技术有限公司 一种业务转发控制方法、装置及电子设备
CN115277575A (zh) * 2021-04-29 2022-11-01 中国移动通信集团浙江有限公司 令牌桶控制方法、装置以及存储介质
WO2023231309A1 (zh) * 2022-06-02 2023-12-07 天翼数字生活科技有限公司 一种终端设备日志请求控制方法、服务端和系统
CN118138644A (zh) * 2024-05-07 2024-06-04 成都新希望金融信息有限公司 请求处理方法、装置、电子设备、存储介质及计算机程序

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660343A (zh) * 2019-01-17 2019-04-19 平安科技(深圳)有限公司 令牌更新方法、装置、计算机设备及存储介质
CN109936511A (zh) * 2017-12-19 2019-06-25 北京金山云网络技术有限公司 一种令牌获取方法、装置、服务器、终端设备及介质
CN110535785A (zh) * 2019-08-29 2019-12-03 郑州阿帕斯科技有限公司 一种发送频率的控制方法、装置和分布式系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936511A (zh) * 2017-12-19 2019-06-25 北京金山云网络技术有限公司 一种令牌获取方法、装置、服务器、终端设备及介质
CN109660343A (zh) * 2019-01-17 2019-04-19 平安科技(深圳)有限公司 令牌更新方法、装置、计算机设备及存储介质
CN110535785A (zh) * 2019-08-29 2019-12-03 郑州阿帕斯科技有限公司 一种发送频率的控制方法、装置和分布式系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491735A (zh) * 2020-11-10 2021-03-12 京东数字科技控股股份有限公司 一种流量控制方法、装置、设备和计算机可读存储介质
CN113067875A (zh) * 2021-03-24 2021-07-02 厦门立林科技有限公司 基于微服务网关动态流控的访问方法和装置以及设备
CN113067875B (zh) * 2021-03-24 2023-06-02 厦门立林科技有限公司 基于微服务网关动态流控的访问方法和装置以及设备
CN115277575A (zh) * 2021-04-29 2022-11-01 中国移动通信集团浙江有限公司 令牌桶控制方法、装置以及存储介质
CN115277575B (zh) * 2021-04-29 2023-09-05 中国移动通信集团浙江有限公司 令牌桶控制方法、装置以及存储介质
CN113630332A (zh) * 2021-08-05 2021-11-09 百融云创科技股份有限公司 一种分布式多级动态限流方法及系统
CN113630332B (zh) * 2021-08-05 2023-10-27 百融云创科技股份有限公司 一种分布式多级动态限流方法及系统
CN114124829A (zh) * 2021-09-26 2022-03-01 新华三技术有限公司 一种业务转发控制方法、装置及电子设备
WO2023231309A1 (zh) * 2022-06-02 2023-12-07 天翼数字生活科技有限公司 一种终端设备日志请求控制方法、服务端和系统
CN118138644A (zh) * 2024-05-07 2024-06-04 成都新希望金融信息有限公司 请求处理方法、装置、电子设备、存储介质及计算机程序

Also Published As

Publication number Publication date
CN111049756B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111049756B (zh) 请求响应方法、装置、电子设备及计算机可读存储介质
CN111159436B (zh) 一种推荐多媒体内容的方法、装置及计算设备
AU2010314292C1 (en) Method and system for adapting a session timeout period
JP2020173778A (ja) リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム
CN107395665A (zh) 一种区块链业务受理及业务共识方法及装置
EP3985932A1 (en) Method and apparatus for node speed limiting, electronic device, and storage medium
CN113343088A (zh) 数据处理方法、系统、装置、设备及存储介质
CN106130972B (zh) 资源访问控制方法和装置
CN103888377A (zh) 报文缓存方法及装置
CN110191160A (zh) 一种并发控制方法和装置
CN109660468A (zh) 一种端口拥塞管理方法、装置和设备
CN109597800B (zh) 一种日志分发方法及装置
CN111147395A (zh) 一种网络资源调整方法及装置
CN107948084B (zh) 一种限流方法和装置
CN107343023A (zh) 一种Mesos管理集群中的资源分配方法、装置及电子设备
CN115102908B (zh) 基于带宽控制的网络报文生成的方法以及相关装置
CN110909978A (zh) 资源处理方法、装置、服务器及计算机可读存储介质
CN112685169B (zh) 一种负载控制方法、装置、服务器及可读存储介质
CN110650206B (zh) 分布式存储系统中io流量控制方法、装置和存储介质
CN113992586A (zh) 流量控制方法、装置、计算机设备和存储介质
CN112260962A (zh) 一种带宽控制方法及装置
CN112187870A (zh) 一种带宽平滑方法及装置
CN109977074B (zh) 一种基于hdfs的lob数据处理方法及装置
CN111552548A (zh) 一种任务处理方法、装置、电子设备及机器可读存储介质
CN116055401A (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