本技术涉及数据处理,尤其涉及一种消息下发的方法及系统。
背景技术:
1、由于消息中间件具有高可用、高性能以及稳定性的特征,对数据中心的运维工作至关重要。在现有的技术中,生产者主要通过消息中间件向被管服务器发布命令,来实现两个或多个消息中间件的主从集群之间的相互连接,从而开展运维工作。
2、由于多个主从集群之间的相互连接,会给消息通讯带来巨额的开销,并且还存在资源浪费的问题。
技术实现思路
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、可选地,在上述的消息下发系统中,还用于:
40、所述消费者模块将各个所述执行结果发送至所述下层消息中间件;
41、所述下层消息中间件当接收到各个所述执行结果时,将各个所述执行结果发送至所述上层消息中间件;
42、所述上层消息中间件当接收到各个所述执行结果时,利用所述目标节点将各个所述执行结果发送给生产者模块;
43、所述生产者模块在接收到各个所述执行结果时,对各个所述执行结果进行处理并展示。
44、本技术提供的一种消息下发的方法,通过所述生产者模块在生产消息后,按照可用区信息对消息进行划分,得到各个目标消息,并将各个目标消息发送至对应的上层消息中间件,其次上层消息中间件当接收到生产者模块发送的目标消息时,利用目标节点将订阅信息发送至下层消息中间件,其中,订阅信息用于通知下层消息中间件获取目标消息,然后下层消息中间件在接收到订阅消息后,利用各个节点从上层消息中间件中获取目标消息,最后消费者模块基于配置信息,利用各个代理机器连接下层消息中间件中的任意一个节点,当各个代理机器与下层消息中间件中的任意一个节点连接成功时,消费者模块利用各个代理机器从下层消息中间件中获取目标消息,并利用各个代理机器执行目标消息中的命令,得到各个执行结果。从而通过双层消息中间件将生产消息进行解耦,可以有效地缩小消息中间件处理消息的开销,进而有效地解决了消息通讯开销比较大的问题。