本技术涉及大数据,尤其涉及一种流量控制方法、装置、服务器、存储介质及程序产品。
背景技术:
1、当流量(单位时间内请求连接数)超过服务端负载或者超出了服务端的处理能力极限后,会导致网络拥堵,还可能导致系统崩溃。
2、相关技术中基于限流器或者负载均衡的方式对流量进行调节,从而避免网络拥堵提高系统稳定性。然而上述流量控制方式的配置较为复杂,维护成本较高,且需借助开源软件或第三方工具,存在安全风险。
技术实现思路
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、本技术提供的流量控制方法、装置、服务器、存储介质及程序产品,应用于包含请求端、应用端和服务端的业务系统中,流量控制服务器设置在请求端与应用端之间,在接收到请求端的请求时,先更新渠道总控、业务总控、请求类型和业务类型这多个层级分别对应的请求连接数,以实现流量计数,从而根据多个层级分别对应的请求连接数和流量控制规则进行流量控制,流量控制规则是根据数据库中的流量控制配置数据生成的,无需借助于开源软件或第三方工具,因此配置方式较为简单,易维护,安全性高且消耗资源较少,且通过参考多个层级的请求连接数进行流量控制,细化了流量控制的颗粒度。