【技术实现步骤摘要】
一种基于MQTT协议的消息推送系统及方法
本专利技术涉及消息推送
,具体涉及一种基于MQTT协议的消息推送系统及方法。
技术介绍
随着移动互联网、物联网的快速发展,获取信息的方式越来越多,从主动获取信息逐渐演变为被动接受信息,信息量也呈现出爆发式的增长,传统的信息获取基于http协议,必须由客户端发起请求建立连接,再通过服务端将数据返回给客户端,每一次信息的获取均要重新建立连接和获取数据,在客户端用户大量同时在线的情况下,无法支撑消息的推送,而且存在消息重复、消息遗漏的缺陷。因此如何保证消息不重复接收、消息必达和解决大量用户同时在线是目前急需解决的问题。
技术实现思路
本专利技术针对上述问题,有必要提供一种基于MQTT协议的消息推送系统及方法,其能够保证消息不重复接收、消息不存在遗漏或丢失以及支持大量用户同时在线。本专利技术第一方面提出一种基于MQTT协议的消息推送系统,所述消息推送系统包括:客户端和服务端,所述客户端包括有应用客户端和通知推送客户端,所述通知推送客户端,内部封装有M ...
【技术保护点】
1.一种基于MQTT协议的消息推送系统,其特征在于,所述消息推送系统包括:客户端和服务端,所述客户端包括有应用客户端和通知推送客户端,所述通知推送客户端,内部封装有Mosquitto客户端,用于实现MQTT协议;/n所述服务端包括推送服务端和MQTT服务器群,所述推送服务端包括消息管理服务和通知推送服务,所述消息管理服务,用于存储和管理所述应用客户端用户的主题消息的消息队列;其中,每个应用客户端用户在所述消息管理服务中都有相应的消息队列,并且所述应用客户端用户的主题消息使用设置的redis数据库进行缓存;所述MQTT服务器群包括多个MQTT服务器;所述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...
【专利技术属性】
技术研发人员:李晓龙,巨银刚,张彦斗,孙晓鹏,廖正赟,周吉祥,李亚运,
申请(专利权)人:郑州信大捷安信息技术股份有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。