本申请涉及计算机,特别涉及一种主题订阅关系的信息查询方法、信息查询装置、服务器以及计算机可读存储介质。
背景技术:
1、随着物联网技术的不断发展,mqtt(message queuing telemetry transport,消息队列遥测传输)协议因其轻量、简单、开发和易于实现的特点使用越来越广泛,mqtt协议是基于client(客户端)、broker(代理)的消息发布订阅协议,client职责是和broker建立连接并维持心跳,保证消息正确传输,broker的职责是管理海量client连接信息和主题订阅信息,保证消息的快速路由。
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、本申请还提供一种主题订阅关系的信息查询装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
1.一种主题订阅关系的信息查询方法,其特征在于,包括:
2.根据权利要求1所述的信息查询方法,其特征在于,对接收到的待查询主题请求进行分解,得到多个待查询主题,包括:
3.根据权利要求1所述的信息查询方法,其特征在于,通过布隆过滤器对每个所述待查询主题进行匹配,包括:
4.根据权利要求1所述的信息查询方法,其特征在于,基于所述主题信息的哈希值在对应的主题哈希表中进行查找,得到对应的客户端信息哈希表,包括:
5.根据权利要求1所述的信息查询方法,其特征在于,当获取到所述客户端信息哈希表时,还包括:
6.根据权利要求1所述的信息查询方法,其特征在于,生成所述主题哈希表的过程,包括:
7.根据权利要求1所述的信息查询方法,其特征在于,还包括:
8.一种主题订阅关系的信息查询装置,其特征在于,包括:
9.一种服务器,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的信息查询方法的步骤。