本实施例涉及通信,尤其涉及一种消息处理方法、装置、电子设备及存储介质。
背景技术:
1、随着物联网技术的发展,基于mqtt(message queuing telemetry transport,消息队列遥测传输协议)进行终端数据收集和远程控制已经成为了行业的主流,mqtt网关是其中的重要节点。mqtt网关的订阅服务是整个网关中设计难度比较高的部分。相关技术中,mqtt网关通常采用raft算法为基础来实现订阅服务,其中,raft算法是一种分布式数据一致性算法,以保证订阅服务的可用性和数据一致性。然而,上述处理方法难以兼顾数据的一致性和读写性能。
技术实现思路
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、本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
1.一种消息处理方法,其特征在于,包括:
2.根据权利要求1所述的消息处理方法,其特征在于,还包括:
3.根据权利要求2所述的消息处理方法,其特征在于,所述将所述述消息处理请求发送至当前进程在多个复制组所对应的节点之后,还包括:
4.根据权利要求1所述的消息处理方法,其特征在于,所述根据所述消息处理请求中的主题确定目标复制组,包括:
5.根据权利要求1所述的消息处理方法,其特征在于,在所述主节点接收到所述消息处理请求之后,包括:
6.根据权利要求1所述的消息处理方法,其特征在于,还包括:
7.根据权利要求1所述的消息处理方法,其特征在于,所述消息处理请求包括如下至少一种:处理订阅请求、处理取消订阅请求及处理查询订阅请求。
8.一种消息处理装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。