随着互联网技术的不断更新和硬件制造技术的不断提升,以iPad、iPhone 以及Android 手机为代表的移动设备和智能终端近年来取得了巨大的发展,其用户数迎来了爆发式的增长。为了适应实际应用中对信息获取及时性,耗电量,以及网络环境等方面的需求,需要用推送的方式取代传统拉取的方式来进行消息的传递,MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)就是专为这种情况所设计的一种消息传递协议。MQTT 协议数据包小,耗电量低,支持所有平台,可以有效的把信息发送给含有一个或者多个接收者的移动应用。同时,它还提供三种不同质量的消息传递服务,具有很强的实用性。为了提高系统的性能和可用性,需要将所有的服务器组织起来形成一个集群系统,以便于提供不间断的服务并且扩大系统的并发量。 本文旨在设计并且实现一个基于MQTT 协议的消息推送集群系统。本文首先介绍了课题的研究的意义,国内外研究现状及课题的项目背景;然后介绍了MQTT协议和服务器集群技术。随后分析了系统的业务流程和实际需求,完成了系统的结构设计。将整个系统分为了业务处理、用户身份验证、ACL 权限检查、自动订阅、话题统计、服务器状态监控、Bridge 模式、负载分发等几个模块。之后以Mosquitto、Redis 等开源项目为基础对这几个模块进行了实现。系统开发使用Linux平台,开发语言为C 语言。经过功能上和性能上的测试,本文设计并且实现的系统能够有效的进行消息推送。相比于单点系统来说,本系统有更好的性能和更高的并发量。