本发明涉及计算机,特别是涉及一种消费者集群管理方法及装置、存储介质及电子设备。
背景技术:
1、消息队列是计算机系统中的常见组件之一,通常由系统中各个应用程序部署的各个消费者所组成的消费者集群,对消息队列中的消息进行消费处理。而消息队列所需的消费者资源是会变化的,故需对消费者集群中的消费者进行管理,以避免资源不足或资源浪费。
2、目前,对于消费者集群的管理方式,一般是当消费者资源不足时,启动新的应用程序以部署新的消费者,当消费者资源过剩时,停止相应的应用程序,以关闭该应用程序部署的各个消费者。
3、在实际的消息消费场景中,消息队列所需的消费者资源变化频繁。发明人经研究发现,基于现有的消费者集群的管理方式,在消息消费过程中,需频繁对应用程序进行启停,过程较为繁琐复杂,对于消费者调整的灵活性较差。
技术实现思路
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、一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的消费者集群管理方法。
38、一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的消费者集群管理方法。
39、基于上述本发明实施例提供的一种消费者集群管理方法,该方法应用于消息队列对应的消费者集群,消费者集群包括多个应用程序部署的消费者,该方法包括:监测消息队列是否符合预设的消息积压条件;在消息队列符合消息积压条件的情况下,检测消费者集群中是否存在处于暂停状态的消费者;若消费者集群中存在处于暂停状态的消费者,则在消费者集群中确定待重启消费者;待重启消费者为消费者集群中处于暂停状态的消费者;生成待重启消费者对应的启动请求,并将启动请求发送至预先构建的内部通信消息队列中,以使部署待重启消费者的应用程序基于启动请求,将待重启消费者切换为启动状态。应用本发明实施例提供的方法,可通过预设的内部通信消息队列在各个应用程序间进行内部通讯,在消费者资源不足时,可通过应用程序重启处于暂停状态的消费者,对处理消息的消费者进行动态调整,即利用应用程序切换其内部的消费者的运行状态,实现消费者资源的调整,在此过程中无需对应用程序进行启停,操作过程较为简便,且资源调整的灵活性较高。