本申请属于通信,尤其涉及一种关于mqtt-topic的数据处理方法。
背景技术:
1、mqtt协议是一种基于发布/订阅(publish/subscribe)模式的信息传输协议。在发布/订阅模式中,发布者向服务器发送包含有主题名的发布信息,订阅者可以向服务器发送包含有主题过滤器的订阅信息,这样订阅者就可以通过订阅信息接收服务器发送的包含有订阅信息主题的发布信息。由于mqtt协议具有使用少量代码和有限带宽为远程设备提供实时可靠信息的优点,被广泛应用于物联网(internet of things,iot)及智能家居等方面。
2、现有发布/订阅模式中,在数据处理过程中需要向所有节点都发起服务请求才能获取到所需要的数据,因此数据处理的效率低。
技术实现思路
1、本申请实施例的目的在于提供一种关于mqtt-topic的数据处理方法、装置、设备及存储介质,能够提高数据处理效率。
2、本申请实施例是这样实现的,第一方面,本申请实施例提供了一种关于mqtt-topic的数据处理方法,应用于服务器集群,所述服务器集群包括多个存储节点,多个所述存储节点中分别存储的主题过滤器具有不同的分区关键字,上述方法包括:接收第一订阅者发送的订阅消息,所述订阅消息中包括与所述第一订阅者请求订阅的第一主题对应的主题过滤器和所述第一订阅者的信息;若所述主题过滤器不包括预设的所述分区关键字,则将所述主题过滤器和所述第一订阅者的信息之间的对应关系存储在每个所述存储节点中。
3、本申请提供一种关于mqtt-topic的数据处理方法,服务器集群中有多个存储节点,当这些存储节点存储有不同分区关键字的主题过滤器时,在第一订阅者发送的主题过滤器中不包括预设的分区关键字的情况下,将主题过滤器和第一订阅者的信息之间的对应关系存储在服务器集群中每个存储节点中。这样,在每个存储节点中存储的都是订阅了第一主题的订阅者,当对订阅了第一主题的订阅者进行数据添加、查询、删除、更新时只需要向上述确定的存储节点发送对应的服务请求即可,无需向所有的存储节点都发送服务请求并等待所有存储节点的响应,再获取响应结果,这样避免消耗更多的存储节点资源,减少了获取服务请求结果的时间,提高了数据处理的效率。
4、在其中一个实施例中,所述方法还包括:当查询与所述第一主题对应的订阅者时,向所述服务器集群中的任一所述存储节点发送查询消息;接收所述存储节点发送的与所述查询消息对应的响应消息,所述响应消息包括与所述第一主题对应的订阅者集合。
5、在其中一个实施例中,所述方法还包括:接收第二订阅者发送的取消订阅消息,所述取消订阅消息用于请求取消所述第二订阅者对所述第一主题的订阅;向每个所述存储节点发送删除消息,所述删除消息用于指示删除所述存储节点中所述主题过滤器与所述第二订阅者的信息之间的对应关系。
6、在其中一个实施例中,所述方法还包括:若所述主题过滤器包括预设的第一分区关键字,则计算所述第一分区关键字的哈希值;将所述主题过滤器和所述第一订阅者的信息之间的对应关系存储在所述多个存储节点中与所述哈希值对应的所述存储节点中。
7、在其中一个实施例中,所述预设的第一分区关键字为设备标识,所述计算所述第一分区关键字的哈希值,包括:根据所述主题过滤器提取所述设备标识;所述设备标识依次经分组、位移、求和、进制转换和取绝对值,得到所述设备标识对应的哈希值。
8、第二方面,本申请实施例提供了一种关于mqtt-topic的数据处理装置,应用于服务器集群,所述服务器集群包括多个存储节点,多个所述存储节点中分别存储的主题具有不同的分区关键字,该装置包括:第一接收单元,用于接收第一订阅者发送的订阅消息,所述订阅消息中包括与所述第一订阅者请求订阅的第一主题对应的主题过滤器和所述第一订阅者的信息;存储单元,用于若所述主题过滤器不包括预设的所述分区关键字,则将所述主题过滤器和所述第一订阅者的信息之间的对应关系存储在每个所述存储节点中。
9、在其中一个实施例中,所述装置还包括:第一发送单元,用于当查询与所述第一主题对应的订阅者时,向所述服务器集群中的任一所述存储节点发送查询消息;第二接收单元,用于接收所述存储节点发送的与所述查询消息对应的响应消息,所述响应消息包括与所述第一主题对应的订阅者集合。
10、在其中一个实施例中,所述装置还包括:第三接收单元,用于接收第二订阅者发送的取消订阅消息,所述取消订阅消息用于请求取消所述第二订阅者对所述第一主题的订阅;第二发送单元,用于向每个所述存储节点发送删除消息,所述删除消息用于指示删除所述存储节点中所述主题过滤器与所述第二订阅者的信息之间的对应关系。
11、第三方面,本申请实施例提供了一种终端设备,所述设备包括:处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述设备执行第一方面中任一项所述的方法。
12、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行第一方面中任一项所述的方法。
13、第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得该计算机执行第一方面中任一项所述的方法。
14、可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
1.一种关于mqtt-topic的数据处理方法,应用于服务器集群,所述服务器集群包括多个存储节点,多个所述存储节点中分别存储的主题过滤器具有不同的分区关键字,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述预设的第一分区关键字为设备标识,所述计算所述第一分区关键字的哈希值,包括:
6.一种关于mqtt-topic的数据处理装置,应用于服务器集群,所述服务器集群包括多个存储节点,多个所述存储节点中分别存储的主题具有不同的分区关键字,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
9.一种终端设备,其特征在于,所述设备包括:处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述设备执行权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行权利要求1至6中任一项所述的方法。