参数动态配置管理方法、装置、设备及介质与流程

文档序号:32347756发布日期:2022-11-26 11:55阅读:40来源:国知局
参数动态配置管理方法、装置、设备及介质与流程

1.本技术涉及软件开发技术领域,尤其涉及一种参数动态配置管理方法、装置、设备及介质。


背景技术:

2.随着互联网技术的蓬勃发展,程序的业务逻辑非常复杂,从而需要引用多种软件中间件技术,以提升软件性能,如kafka、redis、elasticesearch等。这些中间件都存在着大量的参数配置,怎么合理的去配置相关参数,对于将中间件优势最大化及软件性能提升到最优尤为重要。而在现阶段的开发中,这些参数大多都是凭借开发人员的经验去设定,并不能完全适配程序复杂多变需求。例如,项目运行初期,软件使用用户少,数据量少,当前设置可满足软件要求,而当运行一段时间后,数据量越来越大,当前配置已无法满足要求。
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.图1是本技术一实施例中提供的参数动态配置管理方法流程图;
40.图2是本技术一实施例中提供的参数动态配置管理方法的另一流程图;
41.图3是本技术一实施例中提供的参数动态配置管理方法的另一流程图;
42.图4是本技术一实施例中提供的门禁系统使用kafka消费门禁事件流程图;
43.图5是本技术一实施例中提供的kafka中间件参数动态配置流程图;
44.图6是本技术一实施例中提供的参数动态配置管理系统框架图;
45.图7是本技术一实施例提供的一种电子设备的结构示意图。
具体实施方式
46.以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施
例中的特征可以相互组合。
47.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,遂图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
48.在下文描述中,探讨了大量细节,以提供对本技术实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本技术的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本技术的实施例难以理解。
49.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
50.在相关技术中,随着互联网技术的蓬勃发展,程序的业务逻辑非常复杂,从而需要引用多种软件中间件技术,以提升软件性能,如kafka、redis、elasticesearch等中间件。这些中间件都存在着大量的参数配置,对于将中间件优势最大化及软件性能提升到最优尤为重要。而在现阶段的开发中,这些参数大多都是凭借开发人员的经验去设定,并不能完全适配程序复杂多变需求。例如,项目运行初期,软件使用用户少,数据量少,当前设置可满足软件要求。而当运行一段时间后,数据量越来越大,当前配置已无法满足要求。然而,传统模式下,通过人为修改配置后,重新上线发布才可以满足。
51.通过上述方式,人为进行参数配置,不仅增加了用户的工作量,也使得软件操作配置较为繁琐、复杂;由于用户本身技术水平存在差异,修改配置有很大可能达不到要求,无法满足当前软件的配置需求;还有一方面,通过用户进行人为修改配置,导致软件缺乏灵活性与智能化程度不佳。
52.因此,亟需一种动态适配软件要求,自适应进行参数动态配置管理方案,具体详见以下描述。
53.请参阅图1,为本技术一实施例中提供的参数动态配置管理方法流程图,详述如下:
54.步骤s110,获取中间件在预设单位时间内所对应的运行指标;
55.其中,中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。另外,预设单位时间可以根据用户需求进行设定,例如,1分钟、2分钟等。
56.还需要说明的是,所述获取中间件在预设单位时间内所对应的运行指标之前,还包括:采集至少一个应用程序调用所述中间件所产生的运行指标、配置参数与服务器数据。
57.所述运行指标包括所述中间件的当前消费数据、消息堆积数量以及消费处理时长;所述配置参数包括每次最大消费数据量、两次消费最大间隔时间与主题分区数;所述服务器数据包括中间件服务器的硬件指标与集群规格。
58.步骤s120,对所述运行指标进行分析,确定所述中间件初始配置的消费参数是否进行动态调整;所述消费参数至少包括每次最大消费数据、最大消息堆积数量与两次消费最大间隔时间;
59.具体地,通过对运行指标分析后,确定中间件初始配置的消费参数是否进行动态
调整,其中,动态调整所触发的两种情形,包括以下步骤s130与步骤s140。
60.步骤s130,若预设的运行指标中所对应的消息堆积数量大于所述最大消息堆积数量,则增加所述每次最大消费数据量进行动态调整,直至当前所述运行指标为最优配置为止;
61.或/和,
62.具体地,若预设的运行指标中所对应的消息堆积数量小于或等于所述最大消息堆积数量,则不处理;另外,步骤s130中所对应的动态调整的规则与步骤s140中所对应的动态调整的规则不同,导致其中所计算的调制数量也不同。
63.步骤s140,若预设的运行指标执中消费数据执行时间接近所述两次消费最大间隔时间,则降低所述每次最大消费数据量进行动态调整,直至当前所述运行指标为最优配置为止。
64.具体地,若预设的运行指标执中消费数据执行时间不接近所述两次消费最大间隔时间,即,两者的时间相差较大,则不处理。
65.通过上述方式,以上两种情形满足任意一种情形,都需要动态调整每次最大消费数据量,进而,调节当前所述运行指标为最优配置为止,在本实施例中,获取中间件在预设单位时间内所对应的运行指标;对所述运行指标进行分析,确定所述中间件初始配置的消费参数是否进行动态调整;由于在软件开发中,可以动态调整中间件的参数配置,能够实时满足软件在用户与数据流量各方面的需求,通过对运行指标进行实时分析,不仅确保软件以最优配置进行运行,避免了数据量堆积,还提高了中间件的消费能力,也使得该软件具有高可用的优点。
66.请参阅图2,为本技术一实施例中提供的参数动态配置管理方法的另一流程图,所述增加所述每次最大消费数据量进行动态调整,还包括:
67.步骤s210,根据所述运行指标中各运行记录所对应的所述消费数据量以及各所述运行记录所对应的消耗时间,确定各所述运行记录的平均消费处理时长;
68.例如,统计所述运行指标中各个运行记录所对应的消费数据量之和,统计各个运行记录所对应的消耗时间之和,计算所述消耗时间之和与所述消费数据量之和的比值,确定各所述运行记录的平均消费处理时长。
69.步骤s220,根据当前所述每次最大消费数据量、所述平均消费处理时长与时间临界值,确定所述每次最大消费数据量的第一每次调整数量,所述时间临界值由所述两次消费最大间隔时间与预设比例的所述两次消费最大间隔时间之差确定;
70.例如,通过当前所述每次最大消费数据量与第一每次调整数量之和,乘以均消费处理时长所得的时间小于时间临界值,利用上述构成第一不等式关系,确定第一每次调整数量的范围。
71.步骤s230,根据所述最大消息堆积数量、当前消息堆积数量与预设单位时间内运行记录数,确定所述每次最大消费数据量的第二每次调整数量;
72.例如,根据第二每次调整数量与预设单位时间内运行记录数之间的乘积,大于或等于当前消息堆积数量与最大消息堆积数量之差所构成第二不等式关系,确定每次最大消费数据量的第二每次调整数量。
73.步骤s240,对所述第一每次调整数量与所述第二每次调整数量各自所对应的取值
范围进行融合,确定所述每次最大消费数据量的调整数量的调整范围;
74.例如,联合两个不等式进行计算,由于第一每次调整数量与第二每次调整数量各自取值范围不同,通过交叉融合计算交集,确定所述每次最大消费数据量的调整数量的调整范围。
75.步骤s250,对所述调整数量的调整范围的最大值与最小值进行均值计算,确定所述每次最大消费数据量进行动态调整的第一调整数量近似值。
76.例如,通过所述每次最大消费数据量的调整数量的调整范围的均值计算,确定所述每次最大消费数据量进行动态调整的第一调整数量近似值。
77.通过上述方式,能够迅速得到当前每次最大消费数量+第一调整数量近似值,按照上述方式调整后,持续对当前配置下的运行指标进行分析动态调整,保证当前运行指标为最优配置,进而,得到当前所述运行指标为最优配置。
78.请参阅图3,为本技术一实施例中提供的参数动态配置管理方法的另一流程图,所述降低所述每次最大消费数据量进行动态调整,还包括:
79.步骤s310,根据所述运行指标中各运行记录所对应的所述消费数据量以及各所述运行记录所对应的消耗时间,确定各所述运行记录的平均消费处理时长;
80.例如,统计所述运行指标中各个运行记录所对应的消费数据量之和,统计各个运行记录所对应的消耗时间之和,计算所述消耗时间之和与所述消费数据量之和的比值,确定各所述运行记录的平均消费处理时长。
81.步骤s320,根据当前每次最大消费数据量、所述平均消费处理时长与时间临界值,确定所述每次最大消费数据量的第一每次调整数量,所述时间临界值由所述两次消费最大间隔时间与预设比例的所述两次消费最大间隔时间之差确定;
82.例如,通过当前所述每次最大消费数据量与第一每次调整数量之和,乘以均消费处理时长所得的时间小于时间临界值,利用上述构成第一不等式关系,确定第一每次调整数量的范围。
83.其中,预设比例可取值为10%,这样,通过两次消费最大间隔时间与10%的所述两次消费最大间隔时间之差确定时间临界值。
84.步骤s330,基于所述当前每次最大消费数据量与第三每次调整数量之差与所述平均消费处理时长的关联关系,确定单位时间内可消费次数;
85.例如,单位时间内可消费次数等于单位时间内除以{(所述当前每次最大消费数据量与第三每次调整数量之差}与所述平均消费处理时长之间的乘积},通过该等式可确定由第三每次调整数量表达的单位时间内可消费次数。
86.步骤s340,根据所述单位时间内可消费次数、运行记录数、消费数据量以及所述当前每次最大消费数据量的关联关系,确定所述每次最大消费数据量的第三调整数量;
87.例如,将由第三每次调整数量表达的单位时间内可消费次数代入以下第三不等式:
88.{(所述当前每次最大消费数据量与第三每次调整数量之差}与所述单位时间内可消费次数之间的乘积}大于或等于所述运行指标中各个运行记录所对应的消费数据量之和;
89.通过该不等式,确定所述每次最大消费数据量的第三调整数量的取值范围。
90.步骤s350,对所述第一调整数量与所述第三调整数量各自所对应的取值范围进行融合,确定所述每次最大消费数据量的调整数量的调整范围;
91.例如,联合第一不等式与第三不等式进行计算,由于第一每次调整数量与第三每次调整数量各自取值范围不同,通过交叉融合计算交集,确定所述每次最大消费数据量的调整数量的调整范围。
92.步骤s360,对所述每次调整数量的调整范围的最大值与最小值进行均值计算,确定所述每次最大消费数据量进行动态调整的第二调整数量近似值。
93.例如,通过所述每次最大消费数据量的调整数量的调整范围的均值计算,确定所述每次最大消费数据量进行动态调整的第二调整数量近似值。
94.通过上述方式,能够迅速得到当前每次最大消费数量-第二调整数量近似值,按照上述方式调整后,持续对当前配置下的运行指标进行分析动态调整,保证当前运行指标为最优配置,进而,得到当前所述运行指标为最优配置。
95.在另一些实施例中,若同时满足:预设的运行指标中所对应的消息堆积数量大于最大消息堆积数量,且,预设的运行指标执中消费数据执行时间接近两次消费最大间隔时间,还包括:
96.对所述中间件配置参数所对应的主题分区数进行扩充,增加主题分区数量与消费线程数量,以增加单位时间内的消费次数进而提高消费数量,直至扩充后的运行指标满足预设指标,则停止扩充主题分区数,其中,所述预设指标包括实时分析扩充后的运行指标,扩充后的运行指标相对于扩充前的运行指标无变化(即,扩充分后指标已没有明显提升)。
97.通过上述方式,对同时满足上述两种触发条件的对所述中间件配置参数所对应的主题分区数进行扩充,增加主题分区数量与消费线程数量,以增加单位时间内的消费次数进而提高消费数量,直至扩充后的运行指标满足预设指标,则停止扩充主题分区数。
98.在另一些实施例中,若所述运行指标通过动态调整进行优化后所述运行指标仍处于高危状态,则产生报警信号,利用所述报警信号提醒用户进行人工处理。
99.通过上述方式,若运行指标持续高危状态,说明通过动态调整参数已无法处理软件的需求,那么需从硬件层面去解决问题,则触发后台告警系统,发出告警信息,人工即时介入,最大可能缩小对业务的影响。
100.以下以kafka为中间件进行说明,详述如下:
101.一、kafka参数动态设置
102.初始设置:设置kafka消费参数初始值,主要参数有每次最大消费数据量(max-poll-records)、两次消费最大间隔时间(max.poll.interval.ms)、topic分区数、允许kafka最大堆积数量。
103.动态调整:在软件运行过程中,记录kafka每一次消费数据的运行指标,分析这些软件的运行指标,确定kafka消费参数是否需要调整:
104.1、运行指标:kafka当前消费数量、kafka消息堆积数量、kafka一次消费处理时长。
105.2、动态调整触发条件:分析单位时间内(默认1分钟)的所有运行指标,若存在以下两种情形,则需要对参数进行调整:
106.(1)存在2/3的运行记录都存在消息堆积数量大于允许最大堆积数量。
107.(2)存在2/3的运行指标消费数据执行时间接近最大间隔时间(和最大时间相差小
于10%时,表示该消费者有被踢出的风险)。
108.触发条件可使用规则引擎配置规则,保证触发规则最优。
109.其中,收集各软件使用kafka时的运行指标数据、配置数据、kafka服务器数据:
110.运行指标:kafka当前消费数量、kafka消息堆积数量、kafka一次消费处理时长。
111.kafka配置参数:每次最大消费数据量(max-poll-records)、两次消费最大间隔时间(max.poll.interval.ms)、topic分区数。
112.kafka服务器数据:服务的指硬件规格、集群规格。
113.根据规格对不同的kafka服务器数据进行分类,在保证kafka服务器数据为同一类的情况下,通过分析运行指标数据,以单位时间内消费数据量多、数据没有堆积、处理时长低于风险值为标准得出最优的配置数据,将该结果存储并根据分析结果不停的更新,以保证推荐值为最优配置。
114.软件开发人员在设置中间件参数初始值时,根据软件用户量、数据量、kafka服务器规格等参数和大数据分析的存储结果比较,可得出推荐的初始配置,保证软件从最开始运行即为最优状态。
115.3、调整规则:
116.(1)满足触发动态调整条件1,那么只需调整每次最大消费数据量,根据以下公式可得出调整数量近似值
117.et=(运行记录数1消费数据量+运行记录数2消费数据量+

+运行记录数n消费数据量)/(运行记录数1消耗时间+运行记录数2消耗时间+

+运行记录数n消耗时间),得出每条数据的处理时间。
118.(当前每次最大消费数量+每次调整数量)*et《最大间隔时间-最大间隔时间*10%,保证一次消费的处理时间小于时间临界值。
119.每次调整数量*单位时间内的运行记录数》=当前堆积数量-允许最大堆积数量,保证调整后堆积数量不大于允许最大堆积数量
120.以上三步可得出调整数量范围,对调整数量范围最大值和最小值取平均值得出调整数量近似值。
121.动态将最大消费数量设置为当前每次最大消费数量+调整数量。调整后,持续对当前配置下的运行指标进行分析动态调整,保证当前运行指标为最优配置。
122.(2)满足触发动态调整条件2,kafka有发生重平衡的风险,需降低每次最大消费数据量,根据以下公式可得出调整数量近似值
123.(当前每次最大消费数-每次调整数量)*et《最大间隔时间-最大间隔时间*10%,保证一次消费的处理时间小于时间临界值。
124.ec=单位时间/((当前每次最大消费数-每次调整数量)*et),调整后单位时间内可消费次数。
125.(当前每次最大消费数-每次调整数量)*ec》=运行记录数1消费数据量+运行记录数2消费数据量+

+运行记录数n消费数据量,保证不产生数据堆积。
126.以上三步可得出调整数量范围,对调整数量范围最大值和最小值取平均值得出调整数量近似值。
127.动态将最大消费数量设置为当前每次最大消费数量-调整数量。调整后,持续对当
前配置下的运行指标进行分析动态调整,保证当前运行指标为最优配置。
128.(3)同时满足条件1和2,此时在可动态修改topic分区数、增加消费线程数,使单位时间内消费次数增加进而提升消费数量。每次分区扩充步长为1,最多可到kafka服务分区的临界值,在允许并发消费的情况下增加并发程数量,步长也为1,扩充后持续分析运行指标,若扩充分后指标已没有明显提升则停止扩充分区。
129.告警:在上述动态调整后,若运行指标持续高危状态,说明通过动态调整参数已无法处理软件的需求,那么需从硬件层面去解决问题,则触发后台告警系统,发出告警信息,人工即时介入,最大可能缩小对业务的影响。
130.在本实施例中,在目前的软件开发中,项目运行初期,软件流量小,kafka收集数据量不大,数据实时性要求不高,初始配置能完全满足要求,即使消费慢也不会影响正常业务,只要保证最终消费完成即可。随着用户和数据流量的增加,对kafka的消费要求更高,初始配置已不能满足当前软件要求,若不能动态的调整kafka的相关参数,不仅会造成数据大量堆积,而且因为消费能力不足会被kafka剔除,这样就会影响正常的业务,不能满足软件的高可用。传统模式只有在出现问题后,才会发现软件不可用,不能做到即时告警。另外,对于问题的处理方式也只有人为介入修改相关参数后重新发布,该操作周期较长,不能即时响应保证软件高性能、高可用。
131.引入动态配置后,具有技术效果:
132.(1)通过系统的自我学习和决策推荐,可以根据软件要求准确的获取到参数值,对kafka设置准确的初始参数,避免对参数值高估或低估,保证软件上线即以最优性能运行。
133.(2)在软件运行过程中,实时监控软件运行指标,并对运行指标进行即时分析,根据分析结果动态的改变相关参数,提升kafka消费能力,保证软件高可用并以最优性能运行。
134.(3)动态配置时不用人为介入,系统通过自我分析对参数进行调整,从而提高软件的柔性和适应性。
135.(4)可即时告警,在通过动态优化参数后,若运行指标仍然处于非健康状态,此时就触发告警,通知人为介入处理,保证服务高可用。
136.请参阅图4,本技术一实施例中提供的门禁系统使用kafka消费门禁事件流程图;详述如下:
137.通过预计产生门禁事件qps、kafka服务器参数、单条数据处理耗时等和大数据分析的运行数据存储结果进行比较,获取到系统的kafka参数推荐配置,设置消费者kafka每次最大拉取数量(max.poll.records)、并发数、拉取间隔(max.poll.interval.ms)等,该操作可保证参数设置满足当前需求并以较好状态运行。
138.监控在当前设置下,记录每一次消费门禁事件处理数据的运行指标,后台分析门禁事件kafka当前消费数量、门禁事件消息堆积数量、一次消费门禁事件处理时长等,通过动态调整来解决门禁事件数量的变化带来的问题,有以下几种情况需要动态调整。
139.(1)添加门禁设备、门禁点使用频率增加等情况都会使门禁事件数量增加,那么处理门禁事件的能力就需要提升,此时就会造成数据堆积,系统自动触发参数动态调整,根据动态调整规则动态调整后可满足大部分此类需求,保证门禁事件正常处理。
140.(2)处理门禁事件的服务器集群中出现服务器宕机,如5台服务器中出现2台宕机,
那么处理数据的能力下降,此时,可能会造成数据堆积,系统自动触发参数动态调整,根据动态调整规则动态调整后可满足大部分此类需求,保证门禁事件正常处理。
141.(3)网络或者数据库原因,导致门禁事件入库变慢,那么,处理门禁事件耗时变长,可能会导致消费者被踢出、kafka发送重平衡,系统自动触发参数动态调整,根据动态调整规则动态调整后可满足大部分此类需求,保证门禁事件正常处理。
142.若动态调整kafka相关参数后,门禁事件依旧有堆积并且已达到阈值或出现kafka消费者重平衡现象,发送告警信息,人工介入处理。
143.例如,门禁设备产生门禁事件,kafka接收门禁事件数据,消费门禁事件数据,记录分析kafka执行情况,判断是否异常风险,若是,进行参数调整;若否,确定是否满足规格;若是,重新记录分析kafka执行情况;若否,进行参数调整;待参数调整后,多次调整后确定程序是否最优状态,若是,重新记录分析kafka执行情况;若否,产生告警(人工介入),重新记录分析kafka执行情况。
144.请参阅图5,本技术一实施例中提供的kafka中间件参数动态配置流程图,还包括:
145.应用程序输入系统数据量、kafka服务器参数等学习决策,kafka中间运行记录收集将收集运行数据、配置数据发送学习决策,对系统运行指标进行分析决策,得到最优数据配置并存储,利用学习决策输出获取kafka中间件参数推荐配置。
146.软件运行中,通过应用程序获取监控kafka运行指标并持续分析,触发调动规则并动态调整参数;若kafka消息一直堆积、kafka异常,发送告警信息返送至应用程序。
147.收集大量的kafka中间件运行指标、kafka配置参数、kafka服务器数据,对这些数据进行分析决策,得出不同维度下最优的kafka参数配置并存储。
148.设置应用程序kafka参数初始值,通过应用程序数据量、kafka服务器规格、单条业务数据处理耗时等数据得出kafka参数推荐值。
149.软件运行过程中,记录每一次kafka消费数据的运行指标,对数据进行分析,系统自动根据触发条件判定是否触发自动调整规则,完成所需的参数动态设置,保证系统正常运行。该操作是一个持续的过程,系统持续对运行指标进行分析,及时对参数进行调整满足软件需要。
150.在分析运行指标过程中,通过动态参数调整,kafka依然存在消息堆积或者程序异常,即时告警,以保证在最短时间内人工介入解决。
151.请参阅图6,本实施例提供了一种参数动态配置管理装置,该装置包括:
152.获取模块601,用于获取中间件在预设单位时间内所对应的运行指标;
153.指标分析模块602,用于对所述运行指标进行分析,确定所述中间件初始配置的消费参数是否进行动态调整;所述消费参数至少包括每次最大消费数据、最大消息堆积数量与两次消费最大间隔时间;
154.第一配置管理模块603,用于若预设的运行指标中所对应的消息堆积数量大于所述最大消息堆积数量,则增加所述每次最大消费数据量进行动态调整,直至当前所述运行指标为最优配置为止;或/和,
155.第二配置管理模块604,用于若预设的运行指标执中消费数据执行时间接近所述两次消费最大间隔时间,则降低所述每次最大消费数据量进行动态调整,直至当前所述运行指标为最优配置为止
156.在本实施例中,该装置实质上是设置了多个模块用以执行上述实施例中的方法,具体功能和技术效果参照上述方法实施例即可,此处不再赘述。
157.参见图7,本技术实施例还提供了一种电子设备700,包括处理器701、存储器702和通信总线703;
158.通信总线703用于将处理器701和存储器连接702;
159.处理器701用于执行存储器702中存储的计算机程序,以实现如上述实施例一中的一个或多个的方法。
160.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序用于使计算机执行如上述实施例一中的任一项的方法。
161.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例的实施例一所包含步骤的指令(instructions)。
162.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
163.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
164.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
165.附图中的流程图和框图,图示了按照本公开各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个
模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
166.上述实施例仅例示性说明本技术的原理及其功效,而非用于限制本技术。任何熟悉此技术的人士皆可在不违背本技术的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本技术所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本技术的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1