[发明专利]一种基于MQTT协议的消息推送系统及方法有效
申请号: | 201911413738.X | 申请日: | 2019-12-31 |
公开(公告)号: | CN111131501B | 公开(公告)日: | 2022-03-15 |
发明(设计)人: | 李晓龙;巨银刚;张彦斗;孙晓鹏;廖正赟;周吉祥;李亚运 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | H04L67/145 | 分类号: | H04L67/145;H04L67/2866;H04L67/55;H04L67/56;H04L67/568;G06F16/2455 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 张微微 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mqtt 协议 消息 推送 系统 方法 | ||
1.一种基于MQTT协议的消息推送系统,其特征在于,所述消息推送系统包括:客户端和服务端,所述客户端包括有应用客户端和通知推送客户端,所述通知推送客户端,内部封装有Mosquitto客户端,用于实现MQTT协议;
所述服务端包括推送服务端和MQTT服务器群,所述推送服务端包括消息管理服务和通知推送服务,所述消息管理服务,用于存储和管理所述应用客户端用户的主题消息的消息队列;其中,每个应用客户端用户在所述消息管理服务中都有相应的消息队列,并且所述应用客户端用户的主题消息使用设置的redis数据库进行缓存;所述MQTT服务器群包括多个MQTT服务器;所述MQTT服务器群,用于检查MQTT服务器的状态并返回状态信息至所述通知推送服务,以建立与所述应用客户端之间的长连接;以及根据接收的所述推送服务端发送的主题消息通知,向订阅客户端推送主题消息通知;
所述应用客户端,用于向所述通知推送服务发送连接请求信息,接收所述通知推送服务返回的MQTT服务器的连接信息,并根据所述连接信息通过所述通知推送客户端建立与相应的MQTT服务器的长连接;
所述通知推送服务,接收所述应用客户端发送的连接请求信息,通过负载算法获取一台MQTT服务器信息,并向所述MQTT服务器群发送状态检查信息;根据所述MQTT服务器群返回的状态信息判断相应的MQTT服务器的状态是否可用,在状态可用时向所述应用客户端返回该MQTT服务器的连接信息;以及用于将订阅的主题消息通过所述通知推送客户端推送给所述订阅客户端;
所述应用客户端,包括发布客户端和订阅客户端;所述发布客户端,用于向所述推送服务端发布主题消息;所述订阅客户端,用于根据所述MQTT服务器转发的主题消息通知通过所述通知推送客户端从所述推送服务端拉取订阅的主题消息,以及向所述推送服务端发送删除主题消息的请求消息和获知删除结果;
所述推送服务端,用于接收所述发布客户端发布的主题消息并通过所述消息管理服务进行管理和存储,并向所述MQTT服务器发送主题消息通知;用于通过所述通知推送服务从所述消息管理服务中拉取所述订阅客户端订阅的主题消息推送给所述订阅客户端;还用于通过所述消息管理服务从相应消息队列和redis数据库删除存储的相应主题消息,并告知所述订阅客户端删除结果。
2.根据权利要求1所述的消息推送系统,其特征在于,所述服务端还包括消息队列服务器群,所述推送服务端还包括异步消息处理服务和推送管理服务;当所述客户端有大量的消息请求时,所述推送管理服务通过统一的入口服务将消息请求发送给所述消息队列服务器群,然后所述异步消息处理服务实时监听所述消息队列服务器群的消息队列,一旦消息队列中有消息时,采用异步任务手段进行消息的削峰处理。
3.根据权利要求1所述的消息推送系统,其特征在于,所述推送服务端还包括ID生成器服务;所述服务端还包括数据库服务器群;所述长连接建立还包括:所述应用客户端向所述推送服务端进行用户注册,所述推送服务端的所述ID生成器服务根据所述应用客户端的用户产生具有全局唯一标识功能的ID,用于标识所述应用客户端与所述推送服务端之间的长连接和所述应用客户端用户的身份;所述数据库服务器群存储所述应用客户端用户注册的基础配置信息。
4.根据权利要求1所述的消息推送系统,其特征在于,所述消息管理服务具有可扩展功能,根据所述应用客户端的用户量以及投入的所述服务端的主机数量,并且采用一致性hash和动态可扩展技术进行动态扩展;所述redis数据库采用主备方式保障数据安全,一组redis数据库为一个数据分片,每个消息管理服务管理所有的数据分片,每个数据分片维护一定数量应用客户端用户的消息队列。
5.根据权利要求1所述的消息推送系统,其特征在于,所述通知推送服务具有可扩展功能,每个通知推送服务均可与多个MQTT服务器进行通信连接和消息交互,且通过相应的MQTT服务器给在线的应用客户端用户发送消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911413738.X/1.html,转载请声明来源钻瓜专利网。