消息的控制方法、装置、电子设备及存储介质与流程

未命名 09-20 阅读:90 评论:0


1.本发明实施例涉及控制消息处理能力的技术领域,尤其涉及一种消息的控制方法、装置、电子设备及存储介质。


背景技术:

2.现有架构体系中,服务消费消息队列中的消息,消息集群的消费能力上限受消息队列分片数影响;消息量超过消费能力后会出现消息堆积情况。
3.目前的处理方式通过人工将一个topic分为多个topic增加分片数,但是成本又很高,另外增加新的topic后服务也需要做配置调整,这样处理大大增加了人工成本的投入以及依赖经验调控的弊端,同时在人工调控的过程中调控时间存在大于增加分片处理时间,导致处理异常,影响整体的消息处理能力。


技术实现要素:

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.图1为本发明实施例提供的一种消息的控制方法的流程示意图;
53.图2为本发明实施例提供的另一种消息的控制方法的流程示意图;
54.图3为本发明实施例提供的一种消息扩容策略的流程示意图;
55.图4为本发明实施例提供的又一种消息的控制方法的流程示意图;
56.图5为本发明实施例提供的一种消息缩容策略的流程示意图;
57.图6为本发明实施例提供的一种消息的控制装置的结构示意图;
58.图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
59.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.本发明实施例中的用语“包括”和“具有”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。此外,附图中的不同元件和区域只是示意性示出,因此本发明不限于附图中示出的尺寸或距离。
61.为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
62.图1为本发明实施例提供的一种消息的控制方法的流程示意图。本发明的执行主体为执行消息的控制所在的系统。根据图1提供的示图,消息的控制方法具体包括:
63.s101、配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值。
64.本发明实施例应用于调控消息流量的消息服务系统。通过设置消息流量阈值,利用检测到的目标流量与消息流量阈值进行比较,判定是否需要执行容量变换策略;在利用容量变换策略对目标集群的集群进行增加或回收处理;可以实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
65.这里说的目标集群可以理解为用于调配消息服务系统处理消息的集合,这里说的目标集群中包含的集群数量为一个或多个。这里说的消息流量阈值可以理解为每个集群处于工作状态时能够处理的最大消息流量值。
66.进一步地,在检测消息服务系统工作中的包含全部集群组成的目标集群的消息流量处理能力上限值,得到针对目标集群的消息流量阈值,为下一步监测消息服务系统的消息流量是否超过消息流量处理能力的上限值。
67.s102、监测目标集群对应的目标消息队列的目标流量。
68.这里说的目标消息队列可以理解为存储获取消息信息的列表。一个集群通过数据库对应关联一个消息队列。这里说的目标流量可以理解为当前目标消息队列中实际获取到的流量值。
69.进一步地,通过监测功能模块周期性监测目标消息队列获取到的实际流量大小,为下一步判断当前目标消息队列的流量是否超过流量阈值。
70.s103、根据目标流量与消息流量阈值,确定是否执行容量变换策略。
71.这里说的容量变换策略可以理解为调整目标集群的集群个数以及调整目标集群对应的目标消息队列的数量,进而达到调整消息处理能力的策略。
72.进一步地,在得到表征流量处理能力的上限值即消息流量阈值和实际流量值时,根据二者的大小关系,判定当前目标集群工作状态是否超出消息流量的能力范围,如果超出当前消息流量的处理范围需要增加新的集群来满足消息的处理需求;如果出现目标流量远远低于消息流量阈值时,为了节省内存空间,需要减少集群的数量来达到节省空间的目的。
73.s104、在确定执行容量变换策略时,根据容量变换策略对目标集群的容量进行控制。
74.这里说的控制可以理解为增加或减少目标集群中的集群数量以及对应存储数据
的消息队列的数量的操作,达到动态调整目标集群和消息队列的目的。
75.进一步地,在满足调整目标集群和目标消息队列的条件下,当超出当前消息流量的处理范围,对目标群集执行增加新的集群,以及增加新的消息队列的控制;当出现目标流量远远低于消息流量阈值时,为了节省内存空间,需要对目标群集执行减少集群的数量,以及减少目标消息队列来达到节省空间的目的。从而实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
76.本发明实施例提供的消息的控制方法,通过配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值;监测目标集群对应的目标消息队列的目标流量;根据目标流量与消息流量阈值,确定是否执行容量变换策略;在确定执行容量变换策略时,根据容量变换策略对目标集群的容量进行控制。通过设置消息流量阈值,利用检测到的目标流量与消息流量阈值进行比较,判定是否需要执行容量变换策略;在利用容量变换策略对目标集群的集群进行增加或回收处理;由本方案,可以实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
77.图2为本发明实施例提供的另一种消息的控制方法的流程示意图。本发明的执行主体为执行消息的控制所在的系统。图2是在上一种实施例的基础上进行介绍的。根据图2提供的示图,消息的控制方法具体还包括:
78.s201、配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值。
79.本发明实施例应用于调控消息流量的消息服务系统。通过设置消息流量阈值,利用检测到的目标流量与消息流量阈值进行比较,判定是否需要执行容量变换策略;在利用容量变换策略对目标集群的集群进行增加或回收处理;可以实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
80.这里说的目标集群可以理解为用于调配消息服务系统处理消息的集合,这里说的目标集群中包含的集群数量为一个或多个。例如,当目标集群包含的集群数量为一个时,只能通过增加目标集群的数量,实现提高消息流量的处理能力的目的。当目标集群包含的集群数量为多个时,不仅能通过增加目标集群的数量,实现提高消息流量的处理能力的目的,还可以通过减少目标集群包含的集群个数实现节省系统空间的目的。这里说的消息流量阈值可以理解为每个集群处于工作状态时能够处理的最大消息流量值。
81.进一步地,在检测消息服务系统工作中的包含全部集群组成的目标集群的消息流量处理能力上限值,得到针对目标集群的消息流量阈值,为下一步监测消息服务系统的消息流量是否超过消息流量处理能力的上限值。
82.s202、监测目标集群对应的目标消息队列的目标流量。
83.这里说的目标消息队列可以理解为存储获取消息信息的列表。一个集群通过数据
库对应关联一个消息队列。这里说的目标流量可以理解为当前目标消息队列中实际获取到的流量值。
84.进一步地,通过监测功能模块周期性监测目标消息队列获取到的实际流量大小,为下一步判断当前目标消息队列的流量是否超过流量阈值。
85.s203、当目标流量在第一预设时间段内超过消息流量阈值时,确定执行扩容策略。
86.这里说的第一预设时间段可以理解为检测目标流量的时间周期。例如,设定一秒的检测周期,实现实时检测目标流量的目的。这里说的扩容策略可以理解为增加目标集群的集群数量的策略,可以增加一个或多个集群。
87.进一步地,利用第一预设时间段内实时检测得到的目标流量与设定的消息流量阈值进行比较,判定目标流量是否超过消息流量阈值,当在设定的时间段内出现目标流量超过消息流量阈值的情况,判定当前目标集群的消息处理能力不能满足需求,此时执行扩容策略,通过增加目标集群中的集群数量以及目标消息队列的数量达到增加消息处理能力的目的。
88.s204、当目标流量在第二预设时间段内低于消息流量阈值时,确定执行缩容策略,第一预设时间段小于第二预设时间段。
89.这里说的第二预设时间段可以理解为检测目标流量的另一个时间周期。例如,设定一小时的检测周期,实现周期检测目标流量的目的。这里的第一预设时间段小于第二预设时间段,体现消息服务系统的动态调整目标集群的处理原则。有限处理消息流量超载的问题,提高消息流量处理能力。这里说的缩容策略可以理解为减少目标集群的集群数量的策略,可以减少一个或多个集群。
90.进一步地,利用第二预设时间段对应的周期检测得到的目标流量与设定的消息流量阈值进行比较,判定目标流量是否远远低于消息流量阈值,当在设定的时间段内出现目标流量稳定地低于消息流量阈值的情况,判定当前目标集群的消息处理能力远远大于需求,出现资源浪费,此时执行缩容策略,通过减少目标集群中的集群数量以及目标消息队列的数量达到降低消息处理能力的目的。
91.s205、根据扩容策略确定扩容数量,扩容数量为增加的集群数量。
92.这里说的扩容数量可以理解为增加集群的数量,这里说的扩容数量可以为一个或多个。
93.具体地,确定扩容数量的具体步骤通过以下方式实现:
94.步骤一:获取单个集群的平均流量阈值。
95.步骤二:将目标流量与消息流量阈值的差值作为第一流量差。
96.步骤三:利用第一流量差对平均流量阈值进行除法运算,得到第一商值,并向上取整确定扩容数量。
97.这里说的第一流量差可以理解为当前消息流量超出消息服务系统处理能力范围的部分。
98.通过计算一个集群的消息流量处理能力得到平均流量阈值,再将当前的目标流量与设定的消息流量阈值进行相减计算,将得到的差值作为第一流量差,得到超出消息服务系统的处理能力范围之外的部分,通过第一流量差与一个集群的平均流量阈值进行除法运算,求得超出流量的部分可以增加的集群的数量,再遇到第一流量差不能被平均流量阈值
整除的情况,将得到的第一商值向上取整即第一商值加一得到数值作为扩容集群的数量。
99.在一种可能的实例场景中,假设单个集群的平均流量阈值为1000;设定消息流量阈值为5000;当检测到消息服务系统中的目标消息为7500时,首先获取第一差值,即7500-5000=2500,再将得到的第一差值2500与平均流量阈值做除法,得到2500/1000=2.5,因为第一商值不为整数,将2.5向上取整得到3,即得到扩容数量为3。
100.可选地,还可以通过其他方式获得扩容数量。例如,利用模除方法得到。
101.假设一个消息队列topic有m个分片,消费集群处理一条消息耗时t,一秒钟最多处理n条消息,n=(1000ms/t)*m,一台消费容器最大处理能力为x条,则一秒钟n条消息需要y台容器处理,即一个集群中包含y台容器;y=n/x=(1000ms/t)*m/x。假设m=100,t=20ms,x=1000,那么n=(1000ms/t)*m=5000,y=n/x=(1000ms/t)*m/x=5。那么根据假设,当消息量在1-5000之间波动时,对应的消费集群容器数量介于1-5台容器波动。当消息量超过5000时,会超出集群外处理,触发新的topic和消费容器的动态扩容。总topic和总消费集群数量为z,总消息量为a,则当a%n=0时,z=a/n;即需要增加的集群数量为z-m个;当a%n!=0时,z=(向下取整)(a/n)+1,此时需要增加的集群的数量仍然为z-m个。
102.s206、根据扩容数量,对目标集群执行增加集群的控制。
103.s207、当扩容数量为一个时,通过第一消息接口创建扩容消息队列,并将扩容消息队列的第一配置数据存储至目标数据库。
104.s208、调用第一服务接口创建目标集群的一个扩容集群,扩容集群与扩容消息队列共用相同机房和相同地区资源。
105.s209、通过扩容集群获取目标数据库中存储的第一配置数据。
106.进一步地,组件监控目标消息队列的目标流量,当目标流量超过消息流量阈值时,根据详细的策略动态扩展扩容消息队列,将扩容消息队列配置信息存储到数据库中;调用消息集群接口创建扩容集群,扩容集群读取数据库中配置从而消耗扩容消息队列中的消息,将流量一部分切分到扩容消息队列中。
107.s210、当扩容数量为多个时,通过第一消息接口创建多个扩容消息队列,并将多个扩容消息队列的配置数据分别存储至目标数据库。
108.s211、调用第一服务接口创建目标集群的多个扩容集群,并执行通过扩容集群获取目标数据库中存储的第一配置数据的步骤。
109.扩容的计算是在组件层面实现的,发现超过消息流量阈值后,会把多余的流量分配的新增的扩容消息队列,目标集群无变化,当超过目标集群和扩容集群的总消息流量阈值后,会把多余流量分配到新增加的第二扩容消息队列中,通过再次扩建第二扩容集群达到动态增加消息处理能力的目的。
110.在一种可能的实例场景中,图3为本发明实施例提供的一种消息扩容策略的流程示意图。参考图3提供的示图,当目标流量超过消息流量阈值时,触发扩容策略。当扩容数量为一个时,在集群a和消息队列a的基础上,通过消息组件接口创建消息队列b,创建成功后将消息队列b信息存储到数据库中。信息包括消息队列b的名称、连接信息、消费组等,这些信息会写入到mysql固定表中,然后将存储信息的唯一id传递给消息集群b,调用消费服务接口动态创建消息集群b。保证消息集群b与消息队列b共用相同机房和相同地区资源,这样能最大化提升性能。消息集群b中的容器数量会根据流量动态计算,如每1000每秒查询率
(queries-per-second,qps)的流量需要一台机器消息,那么容器数量会随消息量变化而动态调整,当消息服务系统处理超过消息流量阈值的流量时切换到新topic中获取消息。当扩容数量为多个时,目标消息队列中消息qps值超过a+b两个消息集群的总流量处理能力后,会触发创建消息队列c以及创建消息集群c的动态扩容,扩容流程与扩容消息集群b类似,不在赘述,理论上可以无限横向扩展。
111.本发明实施例提供的另一种消息的控制方法,通过设定消息流量阈值和检测目标流量,通过比较二者的大小,确定是否触发目标集群的容量变换策略;在目标流量超过消息流量阈值时,触发扩容策略;通过统计扩容数量,创建扩容消息队列和扩容集群,达到动态扩展消息处理能力的目的,从而实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
112.图4为本发明实施例提供的又一种消息的控制方法的流程示意图。本发明的执行主体为执行消息的控制所在的系统。图4是在第一种实施例的基础上进行介绍的。根据图4提供的示图,消息的控制方法具体还包括:
113.s401、配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值。
114.这里说的目标集群可以理解为用于调配消息服务系统处理消息的集合,这里说的目标集群中包含的集群数量为一个或多个。例如,当目标集群包含的集群数量为一个时,只能通过增加目标集群的数量,实现提高消息流量的处理能力的目的。当目标集群包含的集群数量为多个时,不仅能通过增加目标集群的数量,实现提高消息流量的处理能力的目的,还可以通过减少目标集群包含的集群个数实现节省系统空间的目的。这里说的消息流量阈值可以理解为每个集群处于工作状态时能够处理的最大消息流量值。
115.进一步地,在检测消息服务系统工作中的包含全部集群组成的目标集群的消息流量处理能力上限值,得到针对目标集群的消息流量阈值,为下一步监测消息服务系统的消息流量是否超过消息流量处理能力的上限值。
116.s402、监测目标集群对应的目标消息队列的目标流量。
117.这里说的目标消息队列可以理解为存储获取消息信息的列表。一个集群通过数据库对应关联一个消息队列。这里说的目标流量可以理解为当前目标消息队列中实际获取到的流量值。
118.进一步地,通过监测功能模块周期性监测目标消息队列获取到的实际流量大小,为下一步判断当前目标消息队列的流量是否超过流量阈值。
119.s403、当目标流量在第一预设时间段内超过消息流量阈值时,确定执行扩容策略。
120.这里说的第一预设时间段可以理解为检测目标流量的时间周期。例如,设定一秒的检测周期,实现实时检测目标流量的目的。这里说的扩容策略可以理解为增加目标集群的集群数量的策略,可以增加一个或多个集群。
121.进一步地,利用第一预设时间段内实时检测得到的目标流量与设定的消息流量阈值进行比较,判定目标流量是否超过消息流量阈值,当在设定的时间段内出现目标流量超过消息流量阈值的情况,判定当前目标集群的消息处理能力不能满足需求,此时执行扩容
策略,通过增加目标集群中的集群数量以及目标消息队列的数量达到增加消息处理能力的目的。
122.s404、当目标流量在第二预设时间段内低于消息流量阈值时,确定执行缩容策略,第一预设时间段小于第二预设时间段。
123.这里说的第二预设时间段可以理解为检测目标流量的另一个时间周期。例如,设定一小时的检测周期,实现周期检测目标流量的目的。这里的第一预设时间段小于第二预设时间段,体现消息服务系统的动态调整目标集群的处理原则。有限处理消息流量超载的问题,提高消息流量处理能力。这里说的缩容策略可以理解为减少目标集群的集群数量的策略,可以减少一个或多个集群。
124.进一步地,利用第二预设时间段对应的周期检测得到的目标流量与设定的消息流量阈值进行比较,判定目标流量是否远远低于消息流量阈值,当在设定的时间段内出现目标流量稳定地低于消息流量阈值的情况,判定当前目标集群的消息处理能力远远大于需求,出现资源浪费,此时执行缩容策略,通过减少目标集群中的集群数量以及目标消息队列的数量达到降低消息处理能力的目的。
125.s405、根据缩容策略确定缩容数量,缩容数量为回收的集群数量。
126.这里说的缩容数量可以理解为减少集群的数量,这里说的缩容数量可以为一个或多个。
127.具体地,确定缩容数量的具体步骤通过以下方式实现:
128.步骤1:获取单个集群的平均流量阈值。
129.步骤2:将目标流量与消息流量阈值的差值作为第二流量差。
130.步骤3:利用第二流量差对平均流量阈值进行除法运算,得到第二商值,并向下取整确定缩容数量。
131.这里说的第二流量差可以理解为当前消息流量低于消息服务系统处理能力范围的部分。
132.通过计算一个集群的消息流量处理能力得到平均流量阈值,再将当前的目标流量与设定的消息流量阈值进行相减计算,将得到的差值作为第二流量差,得到低于消息流量阈值的部分,通过第二流量差与一个集群的平均流量阈值进行除法运算,求得低于消息流量阈值的部分可以减少的集群的数量,再遇到第二流量差不能被平均流量阈值整除的情况,将得到的第二商值向下取整即第二商值减一得到数值作为缩容集群的数量。
133.在一种可能的实例场景中,假设单个集群的平均流量阈值为1000;设定消息流量阈值为10000;当检测到消息服务系统中的目标消息为7500时,首先获取第二差值,即10000-7500=2500,再将得到的第二差值2500与平均流量阈值做除法,得到2500/1000=2.5,因为第二商值不为整数,将2.5向下取整得到2,即得到缩容数量为2。
134.可选地,还可以通过其他方式获得缩容数量。例如,利用模除方法得到。方法同上述扩容方法相同,在这里就不再赘述。
135.s406、根据缩容数量,对目标集群执行回收集群的控制。
136.s407、当缩容数量为一个时,控制消息流量禁止分发到缩容消息队列。
137.s408、调用第二服务接口回收目标集群中的一个缩容集群,缩容集群与缩容消息队列共用相同机房和相同地区资源。
138.s409、删除缩容消息队列,以及清除目标数据库中存储的缩容消息队列对应的第二配置数据。
139.组件监控目标消息队列中的目标流量,当目标流量低于目标集群的消息流量阈值一段时间(例如设定一小时)后,触发缩容策略;不再分发消息到目标消息队列中,同时调用消费服务接口动态回收目标集群的缩容集群,删除缩容消息队列,清理数据库中消息队列对应的配置数据,实现节省系统运行空间的目的。
140.s410、当缩容数量为多个时,控制消息流量禁止分发到多个缩容消息队列。
141.s411、调用第二服务接口回收目标集群中的多个缩容集群,并执行删除缩容消息队列的步骤。
142.需要回收的缩容消息队列以及缩容集群的数量超过2个时,回收过程与上述回收一个缩容集群的过程类似,不在赘述。
143.其中,缩容数量以及对应的topic数量的计算方法与扩容时计算方式类似,不在赘述。
144.在一种可能的实例场景中,图5为本发明实施例提供的一种消息缩容策略的流程示意图。参考图5提供的示图,当目标流量低于消息流量阈值时,触发缩容策略。当缩容数量为一个时,在消息队列a、消息队列b直至消息队列n的基础上,对应得到消息集群a、消息集群b直到消息集群n,切流量到原topic中,下线对应的消息集群最后回收topic,清理数据库中配置信息,完成缩容处理,达到节省系统空间的目的。
145.本发明实施例提供的又一种消息的控制方法,通过设定消息流量阈值和检测目标流量,通过比较二者的大小,确定是否触发目标集群的容量变换策略;在目标流量低于消息流量阈值时,触发缩容策略;通过统计缩容数量,回收缩容消息队列和缩容集群,达到动态回收消息处理目的,从而实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。
146.图6为本发明实施例提供的一种消息的控制装置的结构示意图。根据图6提供的示图,消息的控制装置具体包括:
147.配置模块61,用于配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值;
148.检测模块62,用于监测目标集群对应的目标消息队列的目标流量;
149.确定模块63,用于根据目标流量与消息流量阈值,确定是否执行容量变换策略;
150.控制模块64,用于在确定执行容量变换策略时,根据容量变换策略对目标集群的容量进行控制。
151.本实施例提供的消息的控制装置可以是如图6中所示的消息的控制装置,可执行如图1-5中消息的控制方法的所有步骤,进而实现图1-5所示消息的控制方法的技术效果,具体请参照图1-5相关描述,为简洁描述,在此不作赘述。
152.图7为本发明实施例提供的一种电子设备的结构示意图,图7所示的电子设备700包括:至少一个处理器701、存储器702、至少一个网络接口704和其他用户接口703。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件
之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。
153.其中,用户接口703可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
154.可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本文描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
155.在一些实施方式中,存储器702存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7021和应用程序7022。
156.其中,操作系统7021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如媒体播放器(media player)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
157.在本发明实施例中,通过调用存储器702存储的程序或指令,具体的,可以是应用程序7022中存储的程序或指令,处理器701用于执行各方法实施例所提供的方法步骤,例如包括:
158.配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值;监测目标集群对应的目标消息队列的目标流量;根据目标流量与消息流量阈值,确定是否执行容量变换策略;在确定执行容量变换策略时,根据容量变换策略对目标集群的容量进行控制。
159.上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读
存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
160.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
161.对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
162.本实施例提供的电子设备可以是如图7中所示的电子设备,可执行如图1-5中消息的控制方法的所有步骤,进而实现图1-5所示消息的控制方法的技术效果,具体请参照图1-5相关描述,为简洁描述,在此不作赘述。
163.本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
164.当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在消息的控制设备侧执行的消息的控制方法。
165.所述处理器用于执行存储器中存储的消息的控制程序,以实现以下在消息的控制设备侧执行的消息的控制方法的步骤:
166.配置目标集群的消息流量阈值,消息流量阈值表征目标集群的消息流量处理能力的上限值;监测目标集群对应的目标消息队列的目标流量;根据目标流量与消息流量阈值,确定是否执行容量变换策略;在确定执行容量变换策略时,根据容量变换策略对目标集群的容量进行控制。
167.专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
168.结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
169.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种消息的控制方法,其特征在于,包括:配置目标集群的消息流量阈值,所述消息流量阈值表征所述目标集群的消息流量处理能力的上限值;监测所述目标集群对应的目标消息队列的目标流量;根据所述目标流量与所述消息流量阈值,确定是否执行容量变换策略;在确定执行所述容量变换策略时,根据所述容量变换策略对所述目标集群的容量进行控制。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标流量与所述消息流量阈值,确定是否执行容量变换策略,包括:当目标流量在第一预设时间段内超过消息流量阈值时,确定执行扩容策略;当所述目标流量在第二预设时间段内低于所述消息流量阈值时,确定执行缩容策略,所述第一预设时间段小于所述第二预设时间段。3.根据权利要求2所述的方法,其特征在于,所述根据所述容量变换策略对所述目标集群的容量进行控制,包括:根据所述扩容策略确定扩容数量,所述扩容数量为增加的集群数量;根据所述扩容数量,对所述目标集群执行增加集群的控制。4.根据权利要求2所述的方法,其特征在于,所述根据所述容量变换策略对所述目标集群的容量进行控制,包括:根据所述缩容策略确定缩容数量,所述缩容数量为回收的集群数量;根据所述缩容数量,对所述目标集群执行回收集群的控制。5.根据权利要求3所述的方法,其特征在于,所述根据所述扩容策略确定扩容数量,包括:获取单个集群的平均流量阈值;将所述目标流量与所述消息流量阈值的差值作为第一流量差;利用所述第一流量差对所述平均流量阈值进行除法运算,得到第一商值,并向上取整确定扩容数量。6.根据权利要求5所述的方法,其特征在于,所述根据所述扩容数量,对所述目标集群执行增加集群的控制,包括:当所述扩容数量为一个时,通过第一消息接口创建扩容消息队列,并将所述扩容消息队列的第一配置数据存储至目标数据库;调用第一服务接口创建所述目标集群的一个扩容集群,所述扩容集群与所述扩容消息队列共用相同机房和相同地区资源;通过所述扩容集群获取所述目标数据库中存储的所述第一配置数据。7.根据权利要求4所述的方法,其特征在于,所述根据所述缩容策略确定缩容数量,包括:获取单个集群的平均流量阈值;将所述目标流量与所述消息流量阈值的差值作为第二流量差;利用所述第二流量差对所述平均流量阈值进行除法运算,得到第二商值,并向下取整确定缩容数量。
8.根据权利要求7所述的方法,其特征在于,所述根据所述缩容数量,对所述目标集群执行回收集群的控制,包括:当所述缩容数量为一个时,控制消息流量禁止分发到缩容消息队列;调用第二服务接口回收所述目标集群中的一个缩容集群,所述缩容集群与所述缩容消息队列共用相同机房和相同地区资源;删除所述缩容消息队列,以及清除目标数据库中存储的所述缩容消息队列对应的第二配置数据。9.根据权利要求6所述的方法,其特征在于,所述方法,还包括:当所述扩容数量为多个时,通过第一消息接口创建多个扩容消息队列,并将多个所述扩容消息队列的配置数据分别存储至目标数据库;调用第一服务接口创建所述目标集群的多个扩容集群,并执行所述通过所述扩容集群获取所述目标数据库中存储的所述第一配置数据的步骤。10.根据权利要求8所述的方法,其特征在于,所述方法,还包括:当所述缩容数量为多个时,控制消息流量禁止分发到多个缩容消息队列;调用第二服务接口回收所述目标集群中的多个缩容集群,并执行所述删除所述缩容消息队列的步骤。11.一种消息的控制装置,其特征在于,包括:配置模块,用于配置目标集群的消息流量阈值,所述消息流量阈值表征所述目标集群的消息流量处理能力的上限值;检测模块,用于监测所述目标集群对应的目标消息队列的目标流量;确定模块,用于根据所述目标流量与所述消息流量阈值,确定是否执行容量变换策略;控制模块,用于在确定执行所述容量变换策略时,根据所述容量变换策略对所述目标集群的容量进行控制。12.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的消息的控制处理程序,以实现权利要求1~10中任一项所述的消息的控制方法。13.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~10中任一项所述的消息的控制方法。

技术总结
本发明实施例涉及一种消息的控制方法、装置、电子设备及存储介质,所述方法包括:配置目标集群的消息流量阈值,所述消息流量阈值表征所述目标集群的消息流量处理能力的上限值;监测所述目标集群对应的目标消息队列的目标流量;根据所述目标流量与所述消息流量阈值,确定是否执行容量变换策略;在确定执行所述容量变换策略时,根据所述容量变换策略对所述目标集群的容量进行控制。由此,可以实现根据流量动态改变集群的数量以及流量的缩扩容控制,将人工处理变为自动处理,减少了人工成本的投入及依赖经验调控的弊端,解决大流量消息的动态处理能力,能达到最大化利用机器资源,提升服务的消息吞吐量,降低运维成本的技术效果。降低运维成本的技术效果。降低运维成本的技术效果。


技术研发人员:程伟刚 石广 袁会亮 张兵 刘贵全
受保护的技术使用者:北京奇艺世纪科技有限公司
技术研发日:2023.06.12
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐