1.本技术涉及计算机应用技术领域,尤其是涉及到一种服务限流方法及装置、存储介质、计算机设备。
背景技术:
2.现代的操作系统和编程语言支持
线程,且许多大型商业应用程序是多线程的。由于目前更新了很多热门的产品
功能,这些功能的点击流量非常大,为了系统能够稳定的运行,常常会对请求进行限流,如果不进行限流的话,海量的请求很可能会把系统给压垮,当产品功能被大量使用时,由于线程竞争太大的缘故,后台的计数往往会出现偏差,导致限流会出现问题,所以改善后台在限流时的计数偏差是目前亟待解决的问题。
技术实现要素:
3.有鉴于此,本技术提供了一种服务限流方法及装置、存储介质、计算机设备,有助于减少对计数资源的竞争,改善了后台在限流时计数偏差的问题。
4.根据本技术的一个方面,提供了一种服务限流方法,
所述方法包括:
5.接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的
令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;
6.查询所述功能计数资源中是否包含第一空闲线程;
7.若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;
8.依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。
9.可选地,所述若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌,包括:
10.若所述功能计数资源中包含第一空闲线程,则将任意一个第一空闲线程确定为所述服务器请求的目标令牌分配线程;
11.将所述目标功能服务的服务请求写入所述目标令牌分配线程中,通过所述目标令牌分配线程为所述服务请求分配访问令牌,并将所述目标令牌分配线程标记为占用线程。
12.可选地,所述依据所述目标访问令牌,处理所述服务请求之后,所述方法还包括:
13.监控所述服务请求的访问进度;
14.若所述服务请求完成访问,则清空所述目标令牌分配线程中的任务,并将所述目标令牌分配线程标记为空闲线程。
15.可选地,所述功能计数资源还包括与每个所述令牌分配线程对应的线程记录数据,所述线程记录数据包括所述令牌分配线程的序号以及状态值,所述状态值为第一数值时表示对应的令牌分配线程处于空闲状态,所述状态值为第二数值时表示对应的令牌分配
线程处于占用状态;
16.所述查询所述功能计数资源中是否包含第一空闲线程,包括:
17.查询对应的状态值为所述第一数值的所述令牌分配线程;
18.所述将所述目标令牌分配线程标记为占用线程,包括:
19.将所述目标令牌分配线程的状态值从第一数值变更为第二数值;
20.所述将所述目标令牌分配线程标记为空闲线程,包括:
21.将所述目标令牌分配线程的状态值从第二数值变更为第一数值。
22.可选地,所述查询所述目标功能服务对应的功能计数资源之后,所述方法还包括:
23.若所述功能计数资源中不包含第一空闲线程,则对所述目标功能服务的服务请求进行限流处理。
24.可选地,所述对所述目标功能服务的服务请求进行限流处理,包括:
25.将所述服务请求标记为等候服务请求,写入所述目标功能服务的等待列表中;
26.等待所述功能计数资源中包含第二空闲线程时,按所述等待列表中等候服务请求的顺序,利用所述第二空闲线程为所述等候服务请求分配访问令牌。
27.可选地,所述功能计数资源还包括汇总线程,用于管理所述令牌分配线程的空闲状态和占用状态;
28.所述查询所述功能计数资源中是否包含第一空闲线程,包括:
29.通过所述汇总线程,查询所述功能计数资源中是否包含第一空闲线程;
30.所述监控所述服务请求的访问进度,包括:
31.通过所述汇总线程,监控所述服务请求的访问进度。
32.根据本技术的另一方面,提供了一种服务限流装置,所述装置包括:
33.确定模块,用于接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;
34.查询模块,用于查询所述功能计数资源中是否包含第一空闲线程;
35.分配模块,用于若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;
36.处理模块,用于依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。
37.可选地,所述分配模块,还用于:
38.若所述功能计数资源中包含第一空闲线程,则将任意一个第一空闲线程确定为所述服务器请求的目标令牌分配线程;
39.将所述目标功能服务的服务请求写入所述目标令牌分配线程中,通过所述目标令牌分配线程为所述服务请求分配访问令牌,并将所述目标令牌分配线程标记为占用线程。
40.可选地,所述装置还包括:监控模块,用于:
41.所述依据所述目标访问令牌,处理所述服务请求之后,监控所述服务请求的访问进度;
42.若所述服务请求完成访问,则清空所述目标令牌分配线程中的任务,并将所述目标令牌分配线程标记为空闲线程。
43.可选地,所述功能计数资源还包括与每个所述令牌分配线程对应的线程记录数据,所述线程记录数据包括所述令牌分配线程的序号以及状态值,所述状态值为第一数值时表示对应的令牌分配线程处于空闲状态,所述状态值为第二数值时表示对应的令牌分配线程处于占用状态;
44.所述查询模块,还用于:查询对应的状态值为所述第一数值的所述令牌分配线程;
45.所述分配模块,还用于:将所述目标令牌分配线程的状态值从第一数值变更为第二数值;
46.所述监控模块,还用于:将所述目标令牌分配线程的状态值从第二数值变更为第一数值。
47.可选地,所述装置还包括:限流模块,用于所述查询所述目标功能服务对应的功能计数资源之后,若所述功能计数资源中不包含第一空闲线程,则对所述目标功能服务的服务请求进行限流处理。
48.可选地,所述限流模块,还用于:
49.将所述服务请求标记为等候服务请求,写入所述目标功能服务的等待列表中;
50.等待所述功能计数资源中包含第二空闲线程时,按所述等待列表中等候服务请求的顺序,利用所述第二空闲线程为所述等候服务请求分配访问令牌。
51.可选地,所述装置还包括:汇总模块,用于管理所述令牌分配线程的空闲状态和占用状态;
52.所述查询模块,还用于:通过所述汇总线程,查询所述功能计数资源中是否包含第一空闲线程;
53.所述监控模块,还用于:通过所述汇总线程,监控所述服务请求的访问进度。
54.依据本技术又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述服务限流方法。
55.依据本技术再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述服务限流方法。
56.借由上述技术方案,本技术提供的一种服务限流方法及装置、存储介质、计算机设备,首先,接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;其次,查询所述功能计数资源中是否包含第一空闲线程;若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;最终,依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。相比于现有技术中的限流方式,本技术通过查询是否存在空闲的令牌分配线程的方式实现限流,减少了对计数资源的竞争,改善了后台在限流时计数出现偏差的问题。
57.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
58.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
59.图1示出了本技术实施例提供的一种服务限流方法的流程示意图;
60.图2示出了本技术实施例提供的另一种服务限流方法的流程示意图;
61.图3示出了本技术实施例提供的另一种服务限流方法的流程示意图;
62.图4示出了本技术实施例提供的一种服务限流方法中功能计数资源的示意图;
63.图5示出了本技术实施例提供的一种服务限流装置的结构示意图。
具体实施方式
64.下文中将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
65.在本实施例中提供了一种服务限流方法,如图1所示,该方法包括:
66.步骤101,接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;
67.步骤102,查询所述功能计数资源中是否包含第一空闲线程;
68.步骤103,若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;
69.步骤104,依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。
70.本技术实施例可以应用在许多大型应用程序中,用于对流量进行限制,尤其是流量特别大的场景中。本技术实施例以将同一时间对某应用程序的某个功能的访问数量限制在1000为例进行解释说明。首先,某应用程序后台接收到不同用户访问某功能的服务请求,后台确定访问该功能的服务请求对应的功能计数资源,其中,功能计数资源中的预设服务限流数量为后台预先设定的,用于限定同一时间内对某应用程序的某个功能的访问数量;功能计数资源包括1000个令牌分配线程,令牌分配线程用于为服务请求分配访问令牌,每个线程同一时间只能为一个请求分配访问令牌;接下来,查询当前1000个令牌分配线程中是否包含处于空闲状态的第一空闲线程,如果存在第一空闲线程,则将访问该功能的服务请求分配给其中一个第一空闲线程,该第一空闲线程为访问该功能服务的服务请求分配访问令牌,服务请求获得允许访问该功能服务的访问令牌;后台根据该服务请求携带的访问令牌,允许用户访问该功能服务。
71.通过应用本实施例的技术方案,为需要限流的目标功能服务设置功能计数资源,功能计数资源包含预设限流数量的令牌分配线程,其中,用于为服务请求分配访问令牌的令牌分配线程数量限定了在同一时间可以访问目标功能服务的服务请求的数量,从而在接收到对目标功能服务的服务请求后,先查看功能计数资源中有没有空闲的令牌分配线程,并只有在有空闲线程时通过空闲线程为服务请求分配访问令牌,实现了对目标功能服务的限流,改善了后台在限流时因多线程竞争容易导致计数出现偏差的问题。
72.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例
的具体实施过程,提供了另一种服务限流方法,如图2所示,该方法包括:
73.步骤201,接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;
74.步骤202,查询所述功能计数资源中是否包含第一空闲线程;
75.步骤203,若所述功能计数资源中包含第一空闲线程,则将任意一个第一空闲线程确定为所述服务器请求的目标令牌分配线程;
76.步骤204,将所述目标功能服务的服务请求写入所述目标令牌分配线程中,通过所述目标令牌分配线程为所述服务请求分配访问令牌,并将所述目标令牌分配线程标记为占用线程;
77.步骤205,依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问;
78.步骤206,监控所述服务请求的访问进度,若所述服务请求完成访问,则清空所述目标令牌分配线程中的任务,并将所述目标令牌分配线程标记为空闲线程。
79.在本技术实施例中,本技术实施例以将同一时间对某应用程序的某个功能的访问数量限制在2000为例进行解释说明。某应用程序后台接收到对某功能的服务请求,确定该功能对应的功能计数资源,即确定并发的预设服务限流数量的令牌分配线程为2000个,令牌分配线程用于为服务请求分配访问令牌;查询预设的2000个令牌分配线程中是否包含处于空闲状态的第一空闲线程,假设包含5个处于空闲状态的第一空闲线程,则将查询到的5个第一空闲线程中的其中一个第一空闲线程确定为目标令牌分配线程,将访问该功能服务的服务请求写入目标令牌分配线程,进行访问令牌分配,服务请求获得允许访问该功能的访问令牌,并将该目标令牌分配线程标记为占用线程,根据允许访问该功能服务的访问令牌,从而将携带访问令牌的服务请求发送到该功能服务访问接入单元中。监控进入该功能服务的访问进度,当完成访问时,清空目标令牌分配线程中的访问该功能的任务,并将目标令牌分配标记为空闲线程,改善了后台在限流时因多线程竞争容易导致计数出现偏差的问题。
80.作为本技术实施例的一种可选实现方式,如图3所示,步骤202之后还包括:若所述功能计数资源中不包含第一空闲线程,则对所述目标功能服务的服务请求进行限流处理。所述对所述目标功能服务的服务请求进行限流处理,包括:将所述服务请求标记为等候服务请求,写入所述目标功能服务的等待列表中;等待所述功能计数资源中包含第二空闲线程时,按所述等待列表中等候服务请求的顺序,利用所述第二空闲线程为所述等候服务请求分配访问令牌。
81.在上述实施例中,在查询到不包含第一空闲线程的情况下,对目标功能服务的服务请求进行限流服务,即将接收到的服务请求标记为等候服务请求,写入等候列表中,当有第二空闲线程时,第二空闲线程按照等候服务请求的顺序分配访问令牌。
82.需要说明的是,如图4所示,功能计数资源还包括与每个令牌分配线程对应的线程记录数据,线程记录数据包括令牌分配线程的序号以及状态值,状态值为第一数值时表示对应的令牌分配线程处于空闲状态,状态值为第二数值时表示对应的令牌分配线程处于占用状态;以第一数值是0,第二数值是1为例,当令牌分配线程的状态值是0时,说明该令牌分
配线程处于空闲状态,即线程1和线程2处于占用状态,当令牌分配线程的状态值是1时,说明该令牌分配线程处于占用状态,即线程3、线程4、线程5以及线程6处于空闲状态;查询功能计数资源中是否包含第一空闲线程,即查询对应的状态值为0的令牌分配线程;其中,将目标令牌分配线程标记为占用线程,即将目标令牌分配线程的状态值从0变更为1;将目标令牌分配线程标记为空闲线程,即将目标令牌分配线程的状态值从1变更为0,每个线程对应一个状态值,每个线程的状态值在0和1之间变化。在图4(a)中现在所示的情况下,当接收到新的服务请求时,查询到线程线程3、线程4、线程5以及线程6的状态值为0,均处于空闲状态,则将新接收的服务请求分配到线程3中,并将线程3标记为占用线程,线程3的状态值由0变更为1,即如图4(b)所示;如图4(b)现在所示的情况下,当线程1中完成对该功能的访问,清空线程1中访问该功能的任务,并将线程1标记为空闲线程,线程1的状态值由1变更为0,即如图4(c)所示。
83.另外,功能计数资源还包括汇总线程,用于管理令牌分配线程的空闲状态和占用状态;查询功能计数资源中是否包含第一空闲线程,即通过汇总线程,查询功能计数资源中是否包含第一空闲线程;监控服务请求的访问进度,即通过汇总线程,监控服务请求的访问进度。
84.进一步的,作为图1方法的具体实现,本技术实施例提供了一种服务限流装置,如图5所示,该装置包括:
85.确定模块,用于接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;
86.查询模块,用于查询所述功能计数资源中是否包含第一空闲线程;
87.分配模块,用于若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;
88.处理模块,用于依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。
89.可选地,所述分配模块,还用于:
90.若所述功能计数资源中包含第一空闲线程,则将任意一个第一空闲线程确定为所述服务器请求的目标令牌分配线程;
91.将所述目标功能服务的服务请求写入所述目标令牌分配线程中,通过所述目标令牌分配线程为所述服务请求分配访问令牌,并将所述目标令牌分配线程标记为占用线程。
92.可选地,所述装置还包括:监控模块,用于:
93.所述依据所述目标访问令牌,处理所述服务请求之后,监控所述服务请求的访问进度;
94.若所述服务请求完成访问,则清空所述目标令牌分配线程中的任务,并将所述目标令牌分配线程标记为空闲线程。
95.可选地,所述功能计数资源还包括与每个所述令牌分配线程对应的线程记录数据,所述线程记录数据包括所述令牌分配线程的序号以及状态值,所述状态值为第一数值时表示对应的令牌分配线程处于空闲状态,所述状态值为第二数值时表示对应的令牌分配线程处于占用状态;
96.所述查询模块,还用于:查询对应的状态值为所述第一数值的所述令牌分配线程;
97.所述分配模块,还用于:将所述目标令牌分配线程的状态值从第一数值变更为第二数值;
98.所述监控模块,还用于:将所述目标令牌分配线程的状态值从第二数值变更为第一数值。
99.可选地,所述装置还包括:限流模块,用于所述查询所述目标功能服务对应的功能计数资源之后,若所述功能计数资源中不包含第一空闲线程,则对所述目标功能服务的服务请求进行限流处理。
100.可选地,所述限流模块,还用于:
101.将所述服务请求标记为等候服务请求,写入所述目标功能服务的等待列表中;
102.等待所述功能计数资源中包含第二空闲线程时,按所述等待列表中等候服务请求的顺序,利用所述第二空闲线程为所述等候服务请求分配访问令牌。
103.可选地,所述装置还包括:汇总模块,用于管理所述令牌分配线程的空闲状态和占用状态;
104.所述查询模块,还用于:通过所述汇总线程,查询所述功能计数资源中是否包含第一空闲线程;
105.所述监控模块,还用于:通过所述汇总线程,监控所述服务请求的访问进度。
106.需要说明的是,本技术实施例提供的一种服务限流装置所涉及各功能单元的其他相应描述,可以参考图1至图4方法中的对应描述,在此不再赘述。
107.基于上述如图1至图4所示方法,相应的,本技术实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图4所示的服务限流方法。
108.基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
109.基于上述如图1至图4所示的方法,以及图5所示的虚拟装置实施例,为了实现上述目的,本技术实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图4所示的服务限流方法。
110.可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。
111.本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
112.存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间
通信。
113.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现为需要限流的目标功能服务设置功能计数资源,功能计数资源包含预设限流数量的令牌分配线程,其中,用于为服务请求分配访问令牌的令牌分配线程数量限定了在同一时间可以访问目标功能服务的服务请求的数量,从而在接收到对目标功能服务的服务请求后,先查看功能计数资源中有没有空闲的令牌分配线程,并只有在有空闲线程时通过空闲线程为服务请求分配访问令牌,实现了对目标功能服务的限流,改善了后台在限流时因多线程竞争容易导致计数出现偏差的问题。
114.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
115.上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
技术特征:
1.一种服务限流方法,其特征在于,所述方法包括:接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;查询所述功能计数资源中是否包含第一空闲线程;若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。2.根据权利要求1所述的方法,其特征在于,所述若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌,包括:若所述功能计数资源中包含第一空闲线程,则将任意一个第一空闲线程确定为所述服务器请求的目标令牌分配线程;将所述目标功能服务的服务请求写入所述目标令牌分配线程中,通过所述目标令牌分配线程为所述服务请求分配访问令牌,并将所述目标令牌分配线程标记为占用线程。3.根据权利要求2所述的方法,其特征在于,所述依据所述目标访问令牌,处理所述服务请求之后,所述方法还包括:监控所述服务请求的访问进度;若所述服务请求完成访问,则清空所述目标令牌分配线程中的任务,并将所述目标令牌分配线程标记为空闲线程。4.根据权利要求3所述的方法,其特征在于,所述功能计数资源还包括与每个所述令牌分配线程对应的线程记录数据,所述线程记录数据包括所述令牌分配线程的序号以及状态值,所述状态值为第一数值时表示对应的令牌分配线程处于空闲状态,所述状态值为第二数值时表示对应的令牌分配线程处于占用状态;所述查询所述功能计数资源中是否包含第一空闲线程,包括:查询对应的状态值为所述第一数值的所述令牌分配线程;所述将所述目标令牌分配线程标记为占用线程,包括:将所述目标令牌分配线程的状态值从第一数值变更为第二数值;所述将所述目标令牌分配线程标记为空闲线程,包括:将所述目标令牌分配线程的状态值从第二数值变更为第一数值。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述查询所述目标功能服务对应的功能计数资源之后,所述方法还包括:若所述功能计数资源中不包含第一空闲线程,则对所述目标功能服务的服务请求进行限流处理。6.根据权利要求5所述的方法,其特征在于,所述对所述目标功能服务的服务请求进行限流处理,包括:将所述服务请求标记为等候服务请求,写入所述目标功能服务的等待列表中;等待所述功能计数资源中包含第二空闲线程时,按所述等待列表中等候服务请求的顺序,利用所述第二空闲线程为所述等候服务请求分配访问令牌。
7.根据权利要求3所述的方法,其特征在于,所述功能计数资源还包括汇总线程,用于管理所述令牌分配线程的空闲状态和占用状态;所述查询所述功能计数资源中是否包含第一空闲线程,包括:通过所述汇总线程,查询所述功能计数资源中是否包含第一空闲线程;所述监控所述服务请求的访问进度,包括:通过所述汇总线程,监控所述服务请求的访问进度。8.一种服务限流装置,其特征在于,所述装置包括:确定模块,接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;查询模块,查询所述功能计数资源中是否包含第一空闲线程;分配模块,若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;处理模块,依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述服务限流的方法。10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述服务限流的方法。
技术总结
本申请公开了一种服务限流方法及装置、存储介质、计算机设备,该方法包括:接收对目标功能服务的服务请求,确定所述目标功能服务对应的功能计数资源,其中,所述功能计数资源包括预设服务限流数量的令牌分配线程,所述令牌分配线程用于为服务请求分配访问令牌;查询所述功能计数资源中是否包含第一空闲线程;若所述功能计数资源中包含第一空闲线程,则利用所述第一空闲线程为所述目标功能服务分配访问令牌;依据所述目标访问令牌,处理所述服务请求,其中,所述目标功能服务被配置为允许被携带访问令牌的请求访问。本申请实现了对目标功能服务的限流,改善了后台在限流时因多线程竞争容易导致计数出现偏差的问题。易导致计数出现偏差的问题。易导致计数出现偏差的问题。
技术研发人员:
何辉
受保护的技术使用者:
平安付科技服务有限公司
技术研发日:
2022.09.06
技术公布日:
2022/11/22