一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

流量控制方法、装置及计算机可读存储介质与流程

2022-02-20 12:48:25 来源:中国专利 TAG:


1.本发明涉及数据传输领域,具体涉及一种流量控制方法、装置及计算机可读存储介质。


背景技术:

2.在线平台例如在线购物平台通常需要对流量进行监管控制,因为在电子商务业务中,经常会搞各种大促活动如:抢购、秒杀、一元购、商品首付等导致平台流量出现剧烈变化。若不对流量进行控制往往会造成流量超出平台系统的受理能力上线而导致服务响应变慢、成功率降低,甚至会导致冲垮后端系统或数据库服务最终导致宕机无法再提供服务,而造成极坏的用户体验及用户的流失,也面临很大的经济损失。
3.为解决这一问题,目前通常基于不管什么类型的活动都具有一个高并发的特性而进行流量控制,目前的流量控制技术都是基于配置化或代码接入,一次接入即可针对当前提供的服务、产品及更细粒度的维度进行流控,但当大促来临需要调整流控策略时,需要运维人员手动调整流控阈值等参数生成新策略并将新策略推送至流控客户端完成流控的降级以保障系统的稳定,但手动调整流控策略生效慢并且短时间内人工评估出的流控阈值等参数缺乏验证准确性较低,并且无法进行多级的流控,灵活性差。


技术实现要素:

4.本发明目的是:提供一种能自动、准确进行平台流量调节的流量控制方法、装置及计算机可读存储介质。
5.本发明的技术方案是:第一方面,本发明提供一种流量控制方法,所述方法包括:
6.获取客户端的策略运行日志数据;
7.基于所述策略运行日志数据和预设的降级规则匹配对应的降级策略;
8.发送所述降级策略至客户端以供所述客户端实时生效所述降级策略。
9.在一种较佳的实施方式中,所述获取客户端的策略运行日志数据包括:
10.实时抽取客户端的策略运行日志;
11.解析过滤所述策略运行日志获得策略运行日志数据。
12.在一种较佳的实施方式中,所述实时抽取客户端的策略运行日志包括:
13.基于flume实时采集客户端的监控数据;
14.基于kafka组件接收所述监控数据以获得策略运行日志。
15.在一种较佳的实施方式中,所述基于所述策略运行日志数据和预设的降级规则匹配对应的降级策略包括:
16.基于所述策略运行日志数据计算获得目标指标数据;
17.基于所述目标指标数据和预设的降级规则匹配对应的降级策略。
18.在一种较佳的实施方式中,所述基于所述目标指标数据和预设的降级规则匹配对应的降级策略之前,所述方法还包括:
19.基于历史指标数据和所述目标指标数据判断所述目标指标数据是否变化;
20.若是,则基于所述目标指标数据和预设的降级规则匹配对应的降级策略。
21.在一种较佳的实施方式中,所述目标指标数据至少包括:单位时间受理业务量、平均耗时和成功率。
22.在一种较佳的实施方式中,所述方法还包括:
23.实时获取所述客户端发送的流控配置数据;
24.判断所述流控配置数据与本地保存的流控配置数据是否一致,
25.若否,则将所述本地保存的流控配置数据发送至所述客户端以供所述客户端进行数据更新。
26.在一种较佳的实施方式中,所述实时获取所述客户端发送的数据包括:
27.基于zookeeper集群与所述客户端预先建立的链接监听器实时获取所述客户端发送的流控配置数据。
28.第二方面,本发明提供一种流量控制装置,所述系统包括:
29.获取模块,用于获取客户端的策略运行日志数据;
30.匹配模块,用于基于所述策略运行日志数据和预设的降级规则匹配对应的降级策略;
31.发送模块,用于发送所述降级策略至客户端以供所述客户端实时生效所述降级策略。
32.第三方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面所提供的流量控制方法中任一项所述的方法的步骤。
33.与现有技术相比,本发明的优点是:提供一种流量控制方法、装置及计算机可读存储介质,方法包括:获取客户端的策略运行日志数据;基于策略运行日志数据和预设的降级规则匹配对应的降级策略;发送降级策略至客户端以供客户端实时生效降级策略;根据客户端的策略运行日志和预设的降级规则匹配出对应的降级策略,能够及时切换流量控制策略,并且降级策略根据实时获得的客户端的策略运行日志也就是客户端的实时情况获得,能够按需流控,提升流量控制的灵活性,满足复杂的业务场景需求。
附图说明
34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明实施例1所提供的流量控制方法的流程图;
36.图2为本发明实施例1所提供的流量控制方法中令牌池信息示意图;
37.图3为本发明实施例2所提供的流量控制装置的结构图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本技术保护的范围。
39.如背景技术所述,目前基于手动调整流控策略会有生效时间长,流控策略缺乏合理性的验证等问题,可能等新的流控生效前,系统已经无法承载高并发的冲击而宕机,即使新的流控降级策略生效,也具有流控策略设置不合理仍面临系统崩溃风险。通常的流控无法做到动态多层流控:一层流控策略控制某系统所有的服务接口,二层流控策略针对每个接口进行设置流控策略,三层流控针对某个接口内的产品类型进行控制等等。一般当提供新服务接口或新商户入驻时,需调整接入的流控配置等才能将其纳入流控的保障机制中缺乏灵活性。
40.为解决上述问题,本发明提供一种流量控制方法、装置及计算机可读存储介质,通过提前将降级规则与其对应的流控策略配置好,利用实时监控收集业务的运行状况,一旦达到降级规则要求即时推送降级策略,即时生效,更有效的保障系统稳定性;另外,通过在流控服务端配置不同颗粒度的维度流控策略,流控客户端即可将流控策略进行层层叠加形成多层的流控,方便应对大促各种突发情况;不需接入再次变更接入配置信息,只需在流控服务端配置被流控服务的参数类型和参数获取方法,即可组合成新的流控策略,大大提高流控策略配置的灵活性。
41.实施例1:本实施例提供一种流量控制方法,参照图1所示,该方法包括:
42.s1、获取客户端的策略运行日志数据。
43.优选的,本步骤包括:
44.s11、实时抽取客户端的策略运行日志。
45.具体的,后台包括流量控制服务端和统一监控平台。统一监控平台实时抽取客户端的策略运行日志。
46.优选的,本步骤包括:
47.在一种较佳的实施方式中,实时抽取客户端的策略运行日志包括:
48.s111、基于flume实时采集客户端的监控数据。
49.具体的,客户端中的业务系统输出系统运行日志数据,统一监控平台通过flume从客户端中抽取业务系统运行日志数据作为监控数据。flume是一种实时日志收集系统,本实施例中优选flume ng(next generation)对业务系统的运行日志数据进行实时收集。flume负责实时采集业务系统受理业务时的监控数据发送给统一监控平台,监控数据包括当前使用的令牌池、流控策略对应的路径、受理结果、耗时等信息。
50.s112、基于kafka组件接收监控数据以获得策略运行日志。
51.具体的,kafka组件为分布式消息中间件,用于接收flume发送的监控日志内容并提供给统一监控平台进行数据消费。kafka组件是一个分布式、可分区、多副本的消息队列集群服务,具有高吞吐量、低延迟等优点,同时提供灵活的网络配置、在线伸缩、监控和告警等功能。统一监控平台通过flume进行日志的抽取并发送至kafka组件,统一监控平台从kafka组件中实时获取监控数据获得客户端中业务系统的策略运行日志。
52.s12、解析过滤策略运行日志获得策略运行日志数据。
53.统一监控平台对从kafka组件中实时获取的策略运行日志进行解析、过滤等处理
后获得用于进行系统指标计算的策略运行日志数据。
54.s2、基于策略运行日志数据和预设的降级规则匹配对应的降级策略。
55.在一种较佳的实施方式中,本步骤包括:
56.s21、基于策略运行日志数据计算获得目标指标数据。
57.优选的,于本实施例中目标指标数据至少包括:tps(单位时间受理业务量)、平均耗时和成功率。统一监控平台实时从kafka组件中消费消息,根据从kafka组件中实时获取的策略运行日志数据计算平均耗时、成功率、tps等指标数据。
58.s22、基于目标指标数据和预设的降级规则匹配对应的降级策略。
59.基于目标指标数据和预设的降级规则匹配对应的降级策略。
60.具体的,后台中的流控服务端接收到目标指标数据后,根据预设的降级规则进行计算和匹配对应的降级策略。
61.在一种较佳的实施方式中,在步骤s22之前,该方法还包括:
62.sa、基于历史指标数据和目标指标数据判断目标指标数据是否变化,
63.若是,则进入步骤s22。
64.具体的,当目标指标数据与历史指标数据相比有变化时,统一监控平台将目标指标数据推送至流控服务端。更优选的,预设目标指标数据与历史指标数据相比变化阈值,在目标指标数据与历史指标数据相比的变化量达到变化阈值时,判断目标指标数据出现明显变化,触发当前系统的敏感度或告警规则,将目标指标数据推送至流控服务端。
65.s3、发送降级策略至客户端以供客户端实时生效降级策略。
66.具体的,当触发降级规则后,流控服务端立刻将对应的降级策略经由zookeeper集群发送至客户端以供客户端实时监听到流控策略的变化并实时生效当前的降级策略。zookeeper集群是保障流控服务端和客户端之间的实时通信,每个接入流控服务的系统都将在zookeeper上创建自己的目录,各自系统的配置都放于此目录下,接入系统根据自己的系统英文简称进行目录变更的监听,达到实时同步数据的目的。
67.在一种较佳的实施方式中:该方法还包括:
68.sb、实时更新流控配置数据。具体包括:
69.sb1、实时获取客户端发送的流控配置数据。
70.具体的,流控配置数据至少包括单位时间允许访问业务系统的流量。
71.在一种较佳的实施方式中,本步骤包括:
72.基于zookeeper集群实时获取客户端发送的流控配置数据。
73.更优选的,本步骤包括:
74.基于zookeeper集群与客户端预先建立的链接监听器实时获取客户端发送的流控配置数据。
75.sb2、判断流控配置数据与本地保存的流控配置数据是否一致,
76.若否,则进入步骤sb3。
77.具体的,流控服务端启动后检查zookeeper集群中的流控配置数据与流控服务端中的流控配置数据是否一致,若不一致,进入步骤sb3。
78.sb3、将本地保存的流控配置数据发送至客户端以供客户端进行数据更新。
79.具体的,流控服务端将本地的流控配置数据实时推送至zookeeper集群供客户端
进行数据更新。后续有流控配置数据、流控策略变更时,将变更信息实时推送至zookeeper集群。
80.业务系统接入流控客户端后,流控客户端随业务系统而启动,启动后与zookeeper集群建立链接监听器,实时从zookeeper集群中获取变更的流控策略、流控配置数据等信息。
81.于本实施例中,客户端包括接入模块、策略同步监控器模块、令牌池实例化管理器模块、令牌分发管理器模块及异常处理模块;策略同步监控器模块从zookeeper中实时同步流控策略、流控配置数据交给令牌池实例化管理器模块进行实例化的创建和更新,令牌分发管理器模块向业务线程分发令牌及回收,在极端情况下,如:全局流控获取令牌超时的情况下,异常处理模块将自动启用异常单机令牌机制,临时抵御高并发的冲击,系统恢复后即时恢复流控策略机制。
82.客户端基于接入模块实现:基于servlet过滤器接入以对web层和对请求中的参数进行流控,或者基于代码接入以在后台进行动态流控策略配置,或者基于aop接入。
83.具体的,客户端基于servlet过滤器接入方式针对web层进行流控,后台修改预设参数进行流控策略配置,示例性的,流控服务端修改type和/或id参数配置流控策略。
84.若请求被流控,则客户端基于过滤器将请求转发到配置文件中指定的uri,若没有指定的uri,则转发到默认的uri。
85.客户端基于aop接入时在spring的配置文件中定义流控切面,构造函数有三个参数,分别是系统英文简称、令牌池标识、路径标识(如传空值,则使用切入点的classname.methodname代替),这种接入方式无法针对参数进行细粒度更小的方式流控,如果方法调用被流控,则该方法会抛出flowctrlexception,接入方需要处理该异常。
86.客户端基于带参数的代码接入以根据需要动态在流控后台进行配置流控策略进行流控,以实现动态流控parammap里的任何数据。
87.流控客户端包括维护的一个或多个令牌池,令牌包含令牌分发时间、最大使用持有时间,令牌唯一标识等,令牌池信息如图2所示:
88.tps流控指每秒种可以受理的业务量;
89.并发流控指系统同一时刻可同时受理的业务量;
90.全局流控指系统下所有机器共享一个流控策略;
91.单机流控指系统下每台机器都拥有各自的流控策略;
92.最大持有令牌时间指在并发流控方式下,流控调用方请求到令牌后,如果超出最大持有时间还未归还,则该令牌作废(不影响业务),并创建新的令牌放入令牌池中;tps流控该配置只作为统计指标,不新创建令牌。
93.请求令牌超时时间指流控调用方在请求令牌时,在单机并发流控中,如果在该配置时间未返回令牌则拒绝本次请求;在全局并发和tps流控中,该配置时间未返回令牌则使用异常单机令牌;在单机tps流控中,该配置无效。
94.令牌池共享令牌是指如果在策略中勾选了“池共享令牌”,则匹配到这条策略的请求会优先请求池共享令牌,然后再请求当前策略令牌。
95.异常单机令牌是在全局流控下生效,作用是当全局流控请求超时后产生流控作用,因为全局流控需要访问redis缓存服务器,可能存在redis缓存服务器负载过高或者网
络问题等情况,异常单机令牌数在这些情况下可以起到保障作用。正常情况下异常单机令牌数=全局令牌数/系统机器数。
96.令牌数:令牌数=0时所有请求全拒绝;令牌数《0时,所有请求全放过;令牌数》0时,按令牌数控制。
97.客户端在进行多级流控配置时默认生效的是一级流控,多级流控的配置除令牌数外,都与一级流控保持一致,客户端基于业务系统自身需要调整以进行令牌数配置,客户端完成多级流控配置后根据大促使用情况进行降级切换,若配置了每级别对应的切换规则,客户端将自动根据规则切换。
98.独占和共享是路径和参数可以配置模糊匹配,也支持正则匹配,可能不同的请求匹配到同一条策略,独占的情况下,每个不同的请求有各自的令牌数,共享的情况下,不同的请求会共享令牌数。
99.流控服务端包括向zookeeper集群的数据写入模块、策略配置模块、多级流控降级规则配置模块及异常处理机制配置模块;流控服务端配置对应的策略、多级流控的降级策略并基于数据写入模块将数据同步至zookeeper集群中实现数据的实时同步。
100.本实施例提供的流量控制方法,包括:获取客户端的策略运行日志数据;基于策略运行日志数据和预设的降级规则匹配对应的降级策略;发送降级策略至客户端以供客户端实时生效降级策略;根据客户端的策略运行日志和预设的降级规则匹配出对应的降级策略,能够及时切换流量控制策略,并且降级策略根据客户端的客户端的策略运行日志也就是客户端的实时情况获得,能够按需流控,提升流量控制的灵活性,满足复杂的业务场景需求。
101.实施例2:本实施例提供一种流量控制装置,参照图3所示,该系统包括:
102.获取模块31,用于获取客户端的策略运行日志数据;
103.匹配模块32,用于基于策略运行日志数据和预设的降级规则匹配对应的降级策略;
104.发送模块33,用于发送降级策略至客户端以供客户端实时生效降级策略。
105.在一种较佳的实施方式中,获取模块31包括:
106.抽取单元311,用于实时抽取客户端的策略运行日志;
107.解析过滤单元312,用于解析过滤策略运行日志获得策略运行日志数据。
108.更优选的,抽取单元311包括:
109.采集子单元3111,用于基于flume实时采集客户端的监控数据;
110.接收子单元3112,用于基于kafka组件接收监控数据以获得策略运行日志。
111.在一种较佳的实施方式中,匹配模块32包括:
112.计算单元321,用于基于策略运行日志数据计算获得目标指标数据;
113.匹配单元322,用于基于目标指标数据和预设的降级规则匹配对应的降级策略。
114.更优选的,该装置还包括:
115.判断模块34,用于在匹配单元322基于目标指标数据和预设的降级规则匹配对应的降级策略之前,基于历史指标数据和目标指标数据判断目标指标数据是否变化。
116.在一种较佳的实施方式中,该装置还包括:
117.更新模块35,具体包括:
118.获取单元351,用于实时获取客户端发送的流控配置数据;
119.判断单元352,用于判断流控配置数据与本地保存的流控配置数据是否一致;
120.发送单元353,用于在判断单元352判断流控配置数据与本地保存的流控配置数据不一致后,将本地保存的流控配置数据发送至客户端以供所述客户端进行数据更新。
121.更优选的,获取单元351具体用于:
122.基于zookeeper集群与客户端预先建立的链接监听器实时获取客户端发送的流控配置数据。
123.本实施例提供的流量控制装置用于实现实施例1中所提供的流量控制装置方法,其有益效果与实施例1中提供的流量控制装置方法的有益效果相同,在此不做赘述。
124.需要说明的是:上述实施例提供的一种流量控制装置在执行流量控制方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量控制装置与流量控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
125.实施例3:本实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下任一步骤:
126.获取客户端的策略运行日志数据;
127.基于所述策略运行日志数据和预设的降级规则匹配对应的降级策略;
128.发送所述降级策略至客户端以供所述客户端实时生效所述降级策略。
129.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
130.实时抽取客户端的策略运行日志;
131.解析过滤所述策略运行日志获得策略运行日志数据。
132.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤::
133.基于flume实时采集客户端的监控数据;
134.基于kafka组件接收所述监控数据以获得策略运行日志。
135.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤::
136.基于所述策略运行日志数据计算获得目标指标数据;
137.基于所述目标指标数据和预设的降级规则匹配对应的降级策略。
138.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
139.基于历史指标数据和所述目标指标数据判断所述目标指标数据是否变化;
140.若是,则基于所述目标指标数据和预设的降级规则匹配对应的降级策略。
141.所述目标指标数据至少包括:单位时间受理业务量、平均耗时和成功率。
142.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
143.实时获取所述客户端发送的流控配置数据;
144.判断所述流控配置数据与本地保存的流控配置数据是否一致,
145.若否,则将所述本地保存的流控配置数据发送至所述客户端以供所述客户端进行数据更新。
146.作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
147.基于zookeeper集群与所述客户端预先建立的链接监听器实时获取所述客户端发送的流控配置数据。
148.本实施例提供的一种计算机可读存储介质用于处理执行实施例1中所提供的流量控制方法的步骤,其有益效果与实施例1中提供的流量控制方法的有益效果相同,在此不做赘述。
149.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是但不限于只读存储器,磁盘或光盘等。
150.当然上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献