CN110719337A - 业务系统、业务请求处理方法、装置及服务器 - Google Patents
业务系统、业务请求处理方法、装置及服务器 Download PDFInfo
- Publication number
- CN110719337A CN110719337A CN201911010939.5A CN201911010939A CN110719337A CN 110719337 A CN110719337 A CN 110719337A CN 201911010939 A CN201911010939 A CN 201911010939A CN 110719337 A CN110719337 A CN 110719337A
- Authority
- CN
- China
- Prior art keywords
- period
- current
- service
- time
- timestamp
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种业务系统、业务请求处理方法、装置及服务器,可以实现应用业务服务器接收请求;根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果是,则不对业务请求进行响应;如果否,则根据业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果是,则不对业务请求进行响应;如果否,则响应业务请求。从而实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,提高了业务服务器的稳定性。
Description
技术领域
本发明涉及业务控制技术领域,特别是涉及一种业务系统、业务请求处理方法、装置及服务器。
背景技术
在高并发的场景下,当业务系统中的业务服务器短时间内接收到大量的业务请求时,可能会出现由于到达业务服务器的处理能力上限,从而造成业务服务器宕机崩溃,不能再提供服务的情况。
例如:对于广告业务系统,在广告主在该广告业务系统购买流量也就是用户群后,当用户打开某应用软件(APP)或网页时,也触发了广告业务请求,广告业务系统中的业务服务器将该业务请求中包含的用户打开的APP或网页中的广告位信息和用户信息与广告主的需求进行匹配,判断该用户是否为广告主的目标用户,如果是则在用户打开的APP或网页的广告位展示该广告主的广告。但是,如果当在短时间内有大量的用户同时打开APP或网页时,那么业务服务器就会在短时间内同时接收到大量的业务请求,可能会出现由于到达业务服务器的处理能力上限,造成业务服务器宕机崩溃不能相应业务请求的情况。
发明人在实现本发明的过程中发现,现有的业务请求处理方法无法对各时间段内业务服务器要处理的业务请求数量进行均衡,从而存在,业务服务器因在短时间内接收到大量的业务请求达到处理能力上限业务服务器宕机崩溃,造成的业务服务器不稳定的问题。
发明内容
本发明实施例的目的在于提供一种业务系统、业务请求处理方法、装置及服务器,以提高业务服务器的稳定性。具体技术方案如下:
为了达到上述目的,第一方面,本发明实施例提供了一种业务系统,该业务系统包括:业务服务器和远程字典Redis服务器;
所述业务服务器,用于接收业务请求;根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过所述当前第一阈值,则不对所述业务请求进行响应;如果未超过所述当前第一阈值,则根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了所述当前第二阈值,则不对所述业务请求进行响应;如果未超过所述当前第二阈值,则响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中记录的业务请求中获取的;
所述Redis服务器,用于保存所述业务服务器在各个第一时间周期中已处理业务请求的数量。
可选的,所述第一时间周期为1秒;
所述第一时间子周期为预设数量的毫秒;
所述业务请求中的时间戳,包含毫秒级信息;
所述业务服务器,具体用于根据所述业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;根据所述业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
可选的,所述业务服务器,还用于在所述当前第一时间子周期结束时,从所述Redis服务器获取当前第一时间周期中,已处理业务请求的第一数量;根据所述第一时间周期的当前第一阈值、所述第一数量、所述当前第一时间周期的剩余毫秒数量和所述第一时间子周期的毫秒数量,利用公式:
可选的,所述业务服务器,还用于按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至所述Redis服务器;所述第二时间子周期小于所述第一时间子周期。
第二方面,本发明实施例提供了一种业务请求处理方法,应用于上述业务系统中的业务服务器,该方法包括:
接收业务请求;
根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
如果超过所述当前第一阈值,则不对所述业务请求进行响应;
如果未超过所述当前第一阈值,则根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了所述当前第二阈值,则不对所述业务请求进行响应;如果未超过所述当前第二阈值,则响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中记录的业务请求中获取的。
可选的,所述第一时间周期为1秒;
所述第一时间子周期为预设数量的毫秒;
所述业务请求中的时间戳,包含毫秒级信息;
所述根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值的步骤,包括:
根据所述业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值的步骤,包括:
根据所述业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
可选的,所述方法,还包括:
在所述当前第一时间子周期结束时,从所述Redis服务器获取当前第一时间周期中,已处理业务请求的第一数量;
根据所述第一时间周期的当前第一阈值、所述第一数量、所述当前第一时间周期的剩余毫秒数量和所述第一时间子周期的毫秒数量,利用公式:
可选的,所述方法,还包括:
按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至所述Redis服务器;所述第二时间子周期小于所述第一时间子周期。
第三方面,本发明实施例提供了一种业务请求处理装置,应用于上述业务系统中的业务服务器,所述装置包括:
接收模块,用于接收业务请求;
第一时间周期判断模块,用于根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
第一时间子周期判断模块,用于当在所述业务请求中的时间戳所属的当前第一时间周期中,已处理业务请求的第一数量未超过所述当前第一阈值时,根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;
响应模块,用于当在所述业务请求中的时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量未超过第一时间子周期的当前第二阈值时,响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中获取的。
可选的,所述第一时间周期为1秒;
所述第一时间子周期为预设数量的毫秒;
所述业务请求中的时间戳,包含毫秒级信息;
所述第一时间周期判断模块,具体用于根据所述业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
所述第一时间子周期判断模块,具体用于根据所述业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
可选的,所述装置还包括:
第一数量获取模块,用于在所述当前第一时间子周期结束时,从所述Redis服务器获取当前第一时间周期中,已处理业务请求的第一数量;
根据所述第一时间周期的当前第一阈值、所述第一数量、所述当前第一时间周期的剩余毫秒数量和所述第一时间子周期的毫秒数量,利用公式:
可选的,所述装置还包括:
发送模块,用于按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至所述Redis服务器;所述第二时间子周期小于所述第一时间子周期。
第四方面,本发明实施例提供了一种业务服务器,该业务服务器包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一业务请求处理方法的步骤。
本发明实施例提供的业务系统、业务请求处理方法、装置及服务器,可以实现应用业务服务器接收请求;根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过当前第一阈值,则不对业务请求进行响应;如果未超过当前第一阈值,则根据业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应;如果未超过当前第二阈值,则响应业务请求,并修改已处理业务请求的数量。从而实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的业务系统的一种系统架构图;
图2为图1所示的业务系统内部协作的一种交互示意图;
图3为本发明实施例提供的业务请求处理方法的一种流程示意图;
图4为本发明实施例提供的业务请求处理方法的另一种流程示意图;
图5为本发明实施例提供的业务请求处理装置的一种结构示意图;
图6为本发明实施例提供的一种业务服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种业务系统、业务请求处理方法、装置及服务器,以提高业务服务器的稳定性。以下分别对本发明实施例提供的业务系统、业务请求处理方法、装置及服务器进行详细说明。
如图1所示,本发明实施例提供的业务系统,可以包括:业务服务器101和远程字典服务器(Remote Dictionary Server,Redis服务器)102。
业务服务器101,用于接收业务请求;根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过当前第一阈值,则不对业务请求进行响应;如果未超过当前第一阈值,则根据业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应;如果未超过当前第二阈值,则响应业务请求,并修改已处理业务请求的数量;其中,第一时间周期的时长大于第一时间子周期的时长;第一数量从Redis服务器102中获取的;第二数量是从业务服务器中记录的业务请求中获取的;
在一种具体的实施例中,第一时间周期可以为1秒;第一时间子周期可以为预设数量的毫秒(ms),如:5ms、10ms、20ms、25ms等等;业务请求中的时间戳,可以包含毫秒级信息;在该实施例中,业务服务器,可以具体用于根据业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;根据业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
例如:第一时间周期可以为1秒,第一时间子周期可以为5毫秒;由于1秒等于1000毫秒,所以第一时间周期中包含第一时间子周期。
如果业务请求的接收时间点为11点23分23秒123毫秒,则业务请求的时间戳为112323123。业务服务器,可以根据该业务请求的时间戳中的秒级信息:23秒,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值,即判断已处理业务请求的第一数量是否超过23秒这一秒对应的当前第一阈值;根据该业务请求的时间戳中的毫秒级信息:123毫秒,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值,即判断已处理业务请求的第二数量是否超过23秒这一秒中第25个第一时间子周期中,已处理业务请求的第二数量是否超过该第25个第一时间子周期的当前第二阈值。
Redis服务器102,用于保存业务服务器101在各个第一时间周期中已处理业务请求的数量。
Redis服务器,是一个开源的使用ANSI C语言(标准化C语言)编写的Key(键)-Value(值)型数据库服务器。在一种具体的实施例中,Redis服务器中的Key可以是业务服务器的标识信息,Value可以是该业务服务器在各个第一时间周期中已处理业务请求的数量。
如图1所示,业务系统中,可以包含多个业务服务器,这些业务服务器构成业务服务器集群,还可以包含多个Redis服务器,这些Redis服务器构成Redis服务器集群。
另外,如图1所示,系统中还可以设置一个数据库,用于存储业务系统使用者输入的第一时间周期的第一阈值,这个阈值可以修改。在一种具体的实施例中,还可以为本实施例中的业务系统设置一个接口用于接收系统使用者输入的第一时间周期的第一阈值。业务服务器101可以实时的监控业务系统是否接收到新的第一时间周期的第一阈值,如果是,业务服务器101则获取新的第一时间周期的第一阈值;并在当前第一时间周期结束后,将下一第一时间周期的第一阈值更新为新的第一阈值。
由图1所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
在实际应用中,业务服务器101,还可以用于在当前第一时间子周期结束时,从Redis服务器102获取当前第一时间周期中,已处理业务请求的第一数量;根据第一时间周期的当前第一阈值、第一数量、当前第一时间周期的剩余毫秒数量和第一时间子周期的毫秒数量,利用公式:
计算下一第一时间子周期的第二阈值。
例如:第一时间周期为1秒,第一时间子周期为5毫秒。如果当前第一阈值为2000,当前这1秒已过了100ms,则当前第一时间周期的剩余时长为900ms;则业务服务器,可以在当前第一时间子周期结束时,从Redis服务器获取当前这1秒已处理业务请求的第一数量200个;那么,
在实际应用中,业务服务器101,还可以用于按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至Redis服务器102;第二时间子周期小于第一时间子周期。
例如:在一种具体的实施例中,可以设置第二时间子周期为2毫秒,这样,业务服务器101可以每隔2毫秒,将当前2毫秒内记录的已处理业务请求的数量发送至Redis服务器102。
参见图2,图1所示的业务系统内部协作的交互过程可以为:
S201:业务服务器,接收业务请求;
例如:该业务请求可以是当用户打开某应用软件(APP)或网页时,所触发的广告业务请求。
S202:业务服务器,根据业务请求中的时间戳,向Redis服务器发送获取该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量的请求;
S203:Redis服务器,根据接收到的请求,将时间戳所属的当前第一时间周期中,已处理业务请求的第一数量返回至业务服务器;
具体的可以是业务服务器根据业务请求中的时间戳中的秒级信息,向Redis服务器发送获取该秒内,已处理业务请求的第一数量的请求;
例如,业务请求中的时间戳中的秒级信息为23秒,则业务服务器向Redis服务器发送获取在该23秒内,已处理业务请求的第一数量的请求。
S204:业务服务器,判断该第一数量是否超过第一时间周期的当前第一阈值;如果超过当前第一阈值,则不对业务请求进行响应,结束;如果未超过当前第一阈值,则执行步骤S205;
S205:业务服务器,根据业务请求中的时间戳,从自身记录的业务请求中获取该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量;
其中,在实际应用中,业务服务器可以对自身已处理的业务请求进行记录。
具体的可以是业务服务器根据业务请求中的时间戳中的毫秒级信息,从自身获取该毫秒所属的当前第一时间子周期中,已处理业务请求的第二数量。
S206:业务服务器,判断该第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应,结束;如果未超过当前第二阈值,则执行步骤S207;
其中,第一时间周期的时长大于第一时间子周期的时长,例如,第一时间周期的时长可以为1秒,第一时间子周期的时长可以为5毫秒。
S207:业务服务器,响应业务请求,并修改已处理业务请求的数量。
具体的可以是响应业务请求,并将已处理业务请求的数量加1。
由图2所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
参见图3,本发明实施例提供的应用于图1所示的业务系统中的业务服务器的业务请求处理方法的流程可以为:
S301:接收业务请求;
S302:根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过当前第一阈值,则不对业务请求进行响应,结束;如果未超过当前第一阈值,则执行步骤S303;
其中,第一数量是从Redis服务器中获取的。
具体的,第一时间周期可以为1秒;可以根据业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值。
S303:根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应,结束;如果未超过当前第二阈值,则执行步骤S304;
其中,第一时间周期的时长大于第一时间子周期的时长;第二数量是从业务服务器中记录的业务请求中获取的。例如,第一时间周期的时长可以是第一时间子周期的时长的整数倍。
具体的,第一时间子周期为预设数量的毫秒;业务请求中的时间戳,包含毫秒级信息;可以根据业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
S304:响应业务请求,并修改已处理业务请求的数量。
在一种具体的实施例中,该业务请求处理方法,还可以包括:
在当前第一时间子周期结束时,从Redis服务器获取当前第一时间周期中,已处理业务请求的第一数量;
根据第一时间周期的当前第一阈值、第一数量、当前第一时间周期的剩余毫秒数量和第一时间子周期的毫秒数量,利用公式:
在一种具体的实施例中,该业务请求处理方法,还可以包括:
按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至Redis服务器;第二时间子周期小于第一时间子周期。
具体的,第一时间子周期可以为5毫秒,第二时间子周期可以为2毫秒。
由图3所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
以下列举一个实际的例子对本发明实施例提供的应用于图1所示的业务系统中的业务服务器的业务请求处理方法,做进一步详细的说明,具体的,参见图4,该业务请求处理方法,可以包括:
S401:接收业务请求;
在该实施例中,业务系统为广告业务系统,业务请求是当用户打开某应用软件(APP)或网页时,所触发的广告业务请求。
S402:根据业务请求中的时间戳中的秒级信息,判断是否进入下一第一时间周期;如果是,则执行步骤S403;如果否,则执行步骤S404;
在该实施例中,第一时间周期的时长为1秒。
S403:将当前第一时间周期中,已处理业务请求的第一数量清零;
S404:根据业务请求中的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过当前第一阈值,则不对业务请求进行响应,结束;如果未超过当前第一阈值,则执行步骤S405;
S405:根据业务请求中的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应,结束;如果未超过当前第二阈值,则执行步骤S406;
在该实施例中,第一时间子周期的时长为5毫秒。
S406:响应业务请求,并修改已处理业务请求的数量。
由图4所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
与图3所示实施例对应的,本发明实施例还提供了一种业务请求处理装置应用于图1所示的业务系统中的业务服务器,如图5所示,该装置包括:
接收模块501,用于接收业务请求;
第一时间周期判断模块502,用于根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
第一时间子周期判断模块503,用于当在业务请求中的时间戳所属的当前第一时间周期中,已处理业务请求的第一数量未超过当前第一阈值时,根据业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;
响应模块504,用于当在业务请求中的时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量未超过第一时间子周期的当前第二阈值时,响应业务请求,并修改已处理业务请求的数量;其中,第一时间周期的时长大于第一时间子周期的时长;第一数量是从Redis服务器中获取的;第二数量是从业务服务器中记录的业务请求中获取的。
可选的,第一时间周期为1秒;
第一时间子周期为预设数量的毫秒;
业务请求中的时间戳,包含毫秒级信息;
第一时间周期判断模块502,可以具体用于根据业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
第一时间子周期判断模块503,可以具体用于根据业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
可选的,该业务请求处理装置,还可以包括:
第一数量获取模块(图中未示出),用于在当前第一时间子周期结束时,从Redis服务器获取当前第一时间周期中,已处理业务请求的第一数量;
根据第一时间周期的当前第一阈值、第一数量、当前第一时间周期的剩余毫秒数量和第一时间子周期的毫秒数量,利用公式:
可选的,该业务请求处理装置,还可以包括:
发送模块(图中未示出),用于按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至Redis服务器;第二时间子周期小于第一时间子周期。
由图5所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
与图3所示实施例对应的,本发明实施例还提供了一种业务服务器,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
接收业务请求;
根据业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
如果超过当前第一阈值,则不对业务请求进行响应;
如果未超过当前第一阈值,则根据业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了当前第二阈值,则不对业务请求进行响应;如果未超过当前第二阈值,则响应业务请求,并修改已处理业务请求的数量;其中,第一时间周期的时长大于第一时间子周期的时长;第一数量是从Redis服务器中获取的;第二数量是从业务服务器中记录的业务请求中获取的。
由图6所示的实施例可见,本实施例可以实现对各时间段内业务服务器要处理的业务请求数量进行均衡,避免流量尖峰的出现,从而也避免由于在流量尖峰时刻达到了业务服务器的处理能力的上限,使得业务服务器宕机崩溃,不能再提供服务的情况的出现,提高了业务服务器的稳定性。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一业务请求处理方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一业务请求处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种业务系统,其特征在于,包括:业务服务器和远程字典Redis服务器;
所述业务服务器,用于接收业务请求;根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;如果超过所述当前第一阈值,则不对所述业务请求进行响应;如果未超过所述当前第一阈值,则根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了所述当前第二阈值,则不对所述业务请求进行响应;如果未超过所述当前第二阈值,则响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中记录的业务请求中获取的;
所述Redis服务器,用于保存所述业务服务器在各个第一时间周期中已处理业务请求的数量。
2.根据权利要求1所述的系统,其特征在于,
所述第一时间周期为1秒;
所述第一时间子周期为预设数量的毫秒;
所述业务请求中的时间戳,包含毫秒级信息;
所述业务服务器,具体用于根据所述业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;根据所述业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
4.根据权利要求1所述的系统,其特征在于,
所述业务服务器,还用于按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至所述Redis服务器;所述第二时间子周期小于所述第一时间子周期。
5.一种业务请求处理方法,其特征在于,应用于权利要求1所述的业务系统中的业务服务器,所述方法包括:
接收业务请求;
根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
如果超过所述当前第一阈值,则不对所述业务请求进行响应;
如果未超过所述当前第一阈值,则根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;如果超过了所述当前第二阈值,则不对所述业务请求进行响应;如果未超过所述当前第二阈值,则响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中记录的业务请求中获取的。
6.根据权利要求5所述的方法,其特征在于,
所述第一时间周期为1秒;
所述第一时间子周期为预设数量的毫秒;
所述业务请求中的时间戳,包含毫秒级信息;
所述根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值的步骤,包括:
根据所述业务请求的时间戳中的秒级信息,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值的步骤,包括:
根据所述业务请求的时间戳中的毫秒级信息,判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值。
8.根据权利要求5所述的方法,其特征在于,所述方法,还包括:
按照预设的第二时间子周期,将当前第二时间子周期内记录的已处理业务请求的数量发送至所述Redis服务器;所述第二时间子周期小于所述第一时间子周期。
9.一种业务请求处理装置,其特征在于,应用于权利要求1所述的业务系统中的业务服务器,所述装置包括:
接收模块,用于接收业务请求;
第一时间周期判断模块,用于根据所述业务请求中的时间戳,判断在该时间戳所属的当前第一时间周期中,已处理业务请求的第一数量是否超过第一时间周期的当前第一阈值;
第一时间子周期判断模块,用于当在所述业务请求中的时间戳所属的当前第一时间周期中,已处理业务请求的第一数量未超过所述当前第一阈值时,根据所述业务请求中的时间戳判断在该时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量是否超过第一时间子周期的当前第二阈值;
响应模块,用于当在所述业务请求中的时间戳所属的当前第一时间子周期中,已处理业务请求的第二数量未超过第一时间子周期的当前第二阈值时,响应所述业务请求,并修改已处理业务请求的数量;其中,所述第一时间周期的时长大于所述第一时间子周期的时长;所述第一数量是从所述Redis服务器中获取的;所述第二数量是从所述业务服务器中获取的。
10.一种业务服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求5-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911010939.5A CN110719337A (zh) | 2019-10-23 | 2019-10-23 | 业务系统、业务请求处理方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911010939.5A CN110719337A (zh) | 2019-10-23 | 2019-10-23 | 业务系统、业务请求处理方法、装置及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110719337A true CN110719337A (zh) | 2020-01-21 |
Family
ID=69213152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911010939.5A Pending CN110719337A (zh) | 2019-10-23 | 2019-10-23 | 业务系统、业务请求处理方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110719337A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381988A (zh) * | 2020-03-24 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种请求限速方法、装置、电子设备及存储介质 |
CN113590563A (zh) * | 2021-07-28 | 2021-11-02 | 深圳Tcl新技术有限公司 | 一种数据请求方法、系统及存储介质和服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244809A (zh) * | 2011-06-22 | 2011-11-16 | 中兴通讯股份有限公司 | 一种机顶盒stb业务请求的处理方法及装置 |
CN109087055A (zh) * | 2018-06-06 | 2018-12-25 | 北京达佳互联信息技术有限公司 | 业务请求的控制方法和装置 |
CN110120973A (zh) * | 2019-04-28 | 2019-08-13 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
CN110166376A (zh) * | 2019-06-06 | 2019-08-23 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
CN110336881A (zh) * | 2019-07-10 | 2019-10-15 | 北京三快在线科技有限公司 | 执行业务处理请求的方法和装置 |
-
2019
- 2019-10-23 CN CN201911010939.5A patent/CN110719337A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244809A (zh) * | 2011-06-22 | 2011-11-16 | 中兴通讯股份有限公司 | 一种机顶盒stb业务请求的处理方法及装置 |
CN109087055A (zh) * | 2018-06-06 | 2018-12-25 | 北京达佳互联信息技术有限公司 | 业务请求的控制方法和装置 |
CN110120973A (zh) * | 2019-04-28 | 2019-08-13 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
CN110166376A (zh) * | 2019-06-06 | 2019-08-23 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
CN110336881A (zh) * | 2019-07-10 | 2019-10-15 | 北京三快在线科技有限公司 | 执行业务处理请求的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381988A (zh) * | 2020-03-24 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种请求限速方法、装置、电子设备及存储介质 |
CN113590563A (zh) * | 2021-07-28 | 2021-11-02 | 深圳Tcl新技术有限公司 | 一种数据请求方法、系统及存储介质和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI676913B (zh) | 資料處理方法、資料發送方法、風險識別方法及設備 | |
CN109542361B (zh) | 一种分布式存储系统文件读取方法、系统及相关装置 | |
CN111414407A (zh) | 数据库的数据查询方法、装置、计算机设备及存储介质 | |
CN109245928B (zh) | 配置信息的设置方法和装置、终端管理系统 | |
CN111163072B (zh) | 机器学习模型中特征值的确定方法、装置及电子设备 | |
CN110007978A (zh) | 一种预加载页面的方法、装置及设备 | |
WO2019076014A1 (zh) | 网页生成方法、装置、终端设备及介质 | |
CN113505272B (zh) | 基于行为习惯的控制方法和装置、电子设备和存储介质 | |
CN111314174A (zh) | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 | |
US20150180990A1 (en) | Methods and systems for determining user online time | |
CN110719337A (zh) | 业务系统、业务请求处理方法、装置及服务器 | |
CN111522711A (zh) | 一种数据监控处理系统、方法、执行端、监控端及电子设备 | |
CN112468409A (zh) | 访问控制方法、装置、计算机设备及存储介质 | |
CN103544150A (zh) | 为移动终端浏览器提供推荐信息的方法及系统 | |
CN109032693B (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
US9485330B2 (en) | Web browser operation method and system | |
CN112653736A (zh) | 一种并行回源方法、装置及电子设备 | |
CN111078418A (zh) | 操作同步方法、装置、电子设备及计算机可读存储介质 | |
CN108021464B (zh) | 一种应用程序响应数据的兜底处理的方法以及装置 | |
WO2020093613A1 (zh) | 页面数据的处理方法及装置、存储介质、计算机设备 | |
CN110955587A (zh) | 一种待更换设备确定方法及装置 | |
US20240104005A1 (en) | Method for testing application | |
CN110287315A (zh) | 舆情确定方法、装置、设备及存储介质 | |
CN110020166A (zh) | 一种数据分析方法及相关设备 | |
CN114048059A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200121 |
|
RJ01 | Rejection of invention patent application after publication |