本发明涉及物联网,具体涉及一种高并发数据采集场景下的数据熔断控制方法和装置。
背景技术:
1、目前物联网平台大多面临海量高频数据的采集和采集数据处理场景,并采用多集群部署的方式实现整体功能的高可用,针对当前技术架构,在实现高并发场景下的数据高效处理方面已取得显著成效,通过将数据采集、数据计算、历史数据存储、实时缓存以及数据转发模块集中部署在集群内部的同一台服务器上,有效减少了网络数据传输成本并最大化利用了服务器资源。然而,此种部署方式也引发了以下两个核心挑战:
2、在面对突发性的大规模数据转发或存储需求时,数据转发模块和历史数据存储模块可能会超出服务器的带宽承载极限,进而影响到其它对网络流量需求较低的模块的数据传输效率,造成网络拥堵。
3、若集群内的某一模块发生运行异常或故障,服务器的cpu、内存及网络资源可能迅速耗尽,这种情况下不仅会导致该模块自身服务中断,还会影响到集群内所有其他服务的正常运作,最终可能导致整个系统的瘫痪。
技术实现思路
1、本发明的目的是提供一种高并发数据采集场景下的数据熔断控制方法和装置,实现了高并发场景突发数据流量过大情况下的网络稳定性,实现多模块高并发处理过程的异常处理,降低因为单个系统异常导致全系统崩溃的风险。
2、为实现上述目的,本发明一方面提供一种高并发数据采集场景下的数据熔断控制方法,包括:
3、将数据采集模块、数据计算模块、历史数据存储模块、实时缓存模块以及数据转发模块部署在集群内部的同一台服务器;
4、基于高并发场景分别构建秒级和分钟级两个粒度的数据处理缓存数据结构,对进入数据转发模块或历史数据存储模块的数据流量进行存储;
5、基于可用带宽计算每秒数据流量上限值,基于每秒数据流量上限值和不同场景的管控要求分别计算不同设定时间周期的数据处理上限值;
6、基于不同的流量监控定时周期分别从数据处理缓存数据结构处获取对应的缓存数据流量值,将获取的缓存数据流量值分别与数据处理上限值进行比较,判断是否触发超限条件;
7、如果触发超限条件,判断数据缓存队列是否为空,如果数据缓存队列为空,解除超限状态,实时处理全部数据;如果数据缓存队列不为空,将全部数据存入数据缓存队列,按照数据处理上限值定时处理数据。
8、作为本发明进一步的方案,所述基于高并发场景分别构建秒级和分钟级两个粒度的数据处理缓存数据结构,对进入数据转发模块或历史数据存储模块的数据流量进行存储,包括:
9、分别构建秒级和分钟级两个粒度的线程安全的kv结构作为数据处理缓存数据结构,所述数据处理缓存结构的缓存键为秒级或分钟级粒度的时间点,缓存值为数值原子类;
10、基于进入数据转发模块或历史数据存储模块的数据流量进入的时间点在数据处理缓存数据结构对应的数据区域进行存储。
11、作为本发明进一步的方案,所述基于可用带宽计算每秒数据流量上限值,包括:
12、获取当前服务器网络带宽n和带宽分配系数k,根据m=kn计算出数据转发模块或历史数据存储模块的可用带宽m;
13、基于数据转发模块或历史数据存储模块数据包平均大小e,根据fmax = m/e计算出每秒数据流量上限值fmax。
14、作为本发明进一步的方案,将获取的缓存数据流量值分别与数据处理上限值进行比较,判断是否触发超限条件,包括:
15、如果获取的缓存数据流量值大于数据处理上限值,则判断触发超限条件,否则,判断没有触发超限条件。
16、另一方面,本发明提供一种高并发数据采集场景下的数据熔断控制方法,包括:
17、将数据采集模块、数据计算模块、历史数据存储模块、实时缓存模块以及数据转发模块部署在集群内部的同一台服务器;
18、基于高并发场景构建秒级粒度的异常缓存数据结构,对不同模块的数据处理异常次数进行存储;
19、获取单位时间内单个模块的数据处理异常次数,与预先设定阈值进行比较,并根据比较结果确定熔断措施类型。
20、作为本发明进一步的方案,所述基于高并发场景构建秒级异常缓存数据结构,对各模块的数据处理异常次数进行存储,包括:
21、构建秒级粒度的kv结构作为秒级异常缓存数据结构,所述秒级异常缓存数据结构的缓存键为秒级粒度时间点,缓存值为数值原子类;
22、获取进入各模块的数据在处理过程中发生的数据处理异常次数,基于数据进入各模块的时间点将所述数据处理异常次数在秒级异常缓存数据结构对应的数据区域进行存储。
23、作为本发明进一步的方案,所述获取单位时间内单个模块的数据处理异常次数,与预先设定阈值进行比较,并根据比较结果确定熔断措施类型,包括:
24、获取单位时间内单个模块的数据处理异常次数,如果数据处理异常次数大于第一设定阈值,进入一级熔断,中断处理过程时长为第一预设时间,并发出系统告警记录系统日志;
25、如果数据处理异常次数大于第二设定阈值或一级熔断结束后首次处理仍失败,进入二级熔断,中断处理过程时长为第二预设时间,并发出系统告警记录系统日志,其中,第二预设时间为第一预设时间的整数倍;
26、如果数据处理异常次数大于第三设定阈值或二级熔断结束后首次处理仍失败,进入三级熔断,中断处理过程时长为第三预设时间,并发出系统告警记录系统日志,其中,第三预设时间为第二预设时间的整数倍;
27、如果数据处理异常次数大于第四设定阈值或三级熔断结束后首次处理仍失败,进入四级熔断,中断当前数据处理模块服务,并发出系统告警记录系统日志。
28、再一方面,本发明提供一种高并发数据采集场景下的数据熔断控制装置,包括:
29、集群部署模块,将数据采集模块、数据计算模块、历史数据存储模块、实时缓存模块以及数据转发模块部署在集群内部的同一台服务器;
30、数据处理缓存数据结构模块,基于高并发场景分别构建秒级和分钟级两个粒度的数据处理缓存数据结构,对进入数据转发模块或历史数据存储模块的数据流量进行存储;
31、数据处理上限值计算模块,基于可用带宽计算每秒数据流量上限值,基于每秒数据流量上限值和不同场景的管控要求分别计算不同设定时间周期的数据处理上限值;
32、比较模块,基于不同的流量监控定时周期分别从数据处理缓存数据结构处获取对应的缓存数据流量值,将获取的缓存数据流量值分别与数据处理上限值进行比较,判断是否触发超限条件;
33、超限触发模块,如果触发超限条件,判断数据缓存队列是否为空,如果数据缓存队列为空,解除超限状态,实时处理全部数据;如果数据缓存队列不为空,将全部数据存入数据缓存队列,按照数据处理上限值定时处理数据。
34、再一方面,本发明提供一种高并发数据采集场景下的数据熔断控制装置,包括:
35、集群部署模块,将数据采集模块、数据计算模块、历史数据存储模块、实时缓存模块以及数据转发模块部署在集群内部的同一台服务器;
36、异常缓存数据结构构建模块,基于高并发场景构建秒级粒度的异常缓存数据结构,对不同模块的数据处理异常次数进行存储;
37、熔断处理模块,获取单位时间内单个模块的数据处理异常次数,与预先设定阈值进行比较,并根据比较结果确定熔断措施类型。
38、与现有技术相比,本发明的有益效果是:
39、本发明高并发数据采集场景下的数据熔断控制方法使用数据处理流量监控、过量数据缓存机制实现了高并发场景突发数据流量过大情况下的网络稳定性保证。利用数据处理各类模块的异常次数监控,多层级的熔断决策表技术实现了多模块高并发处理过程的异常处理,降低因为单个系统异常导致全系统崩溃的风险。该结构对于海量物联网采集和计算场景可以有效的提升数据处理服务的稳定性,实现了系统更高的可靠性。
1.一种高并发数据采集场景下的数据熔断控制方法,其特征在于,包括:
2.根据权利要求1所述的高并发数据采集场景下的数据熔断控制方法,其特征在于,所述基于高并发场景分别构建秒级和分钟级两个粒度的数据处理缓存数据结构,对进入数据转发模块或历史数据存储模块的数据流量进行存储,包括:
3.根据权利要求1所述的高并发数据采集场景下的数据熔断控制方法,其特征在于,所述基于可用带宽计算每秒数据流量上限值,包括:
4.根据权利要求1所述的高并发数据采集场景下的数据熔断控制方法,其特征在于,将获取的缓存数据流量值分别与数据处理上限值进行比较,判断是否触发超限条件,包括:
5.一种高并发数据采集场景下的数据熔断控制方法,其特征在于,包括:
6.根据权利要求5所述的高并发数据采集场景下的数据熔断控制方法,其特征在于,所述基于高并发场景构建秒级异常缓存数据结构,对各模块的数据处理异常次数进行存储,包括:
7.根据权利要求5所述的高并发数据采集场景下的数据熔断控制方法,其特征在于,所述获取单位时间内单个模块的数据处理异常次数,与预先设定阈值进行比较,并根据比较结果确定熔断措施类型,包括:
8.一种高并发数据采集场景下的数据熔断控制装置,其特征在于,包括:
9.一种高并发数据采集场景下的数据熔断控制装置,其特征在于,包括:
