分布式消息推送系统的设计与实现
摘要 | 第5-6页 |
abstract | 第6页 |
第一章 绪论 | 第9-19页 |
1.1 研究背景及意义 | 第9-12页 |
1.2 国内外研究现状 | 第12-17页 |
1.2.1 推送服务机制 | 第12-13页 |
1.2.2 C2DM云端推送 | 第13-14页 |
1.2.3 APNs服务 | 第14页 |
1.2.4 第三方推送平台 | 第14-17页 |
1.3 课题来源及研究内容 | 第17页 |
1.4 论文组织结构 | 第17-19页 |
第二章 关键理论及相关技术介绍 | 第19-29页 |
2.1 MQTT协议 | 第19-22页 |
2.1.1 MQTT协议简介 | 第19页 |
2.1.2 MQTT发布/订阅模式 | 第19-21页 |
2.1.3 MQTT的服务质量 | 第21页 |
2.1.4 MQTT与XMPP协议对比 | 第21-22页 |
2.2 Redis | 第22-23页 |
2.2.1 Redis简介 | 第22页 |
2.2.2 Redis集群 | 第22-23页 |
2.3 zookeeper | 第23-24页 |
2.3.1 zookeeper简介 | 第23页 |
2.3.2 ZooKeeper集群管理 | 第23-24页 |
2.4 Kafka | 第24-26页 |
2.4.1 Kafka简介 | 第24-26页 |
2.5 Thrift | 第26-28页 |
2.5.1 Thrift简介 | 第26-28页 |
2.6 本章总结 | 第28-29页 |
第三章 系统需求分析及概要设计 | 第29-41页 |
3.1 系统功能性需求 | 第29-30页 |
3.2 系统概要设计 | 第30页 |
3.3 系统各模块设计 | 第30-36页 |
3.3.1 路由模块 | 第32-33页 |
3.3.2 推送模块 | 第33-34页 |
3.3.3 存储模块 | 第34页 |
3.3.4 API模块 | 第34-35页 |
3.3.5 消息队列模块 | 第35-36页 |
3.4 分布式集群设计 | 第36-40页 |
3.4.1 推送集群 | 第36-37页 |
3.4.2 消息存储集群 | 第37-38页 |
3.4.3 消息队列集群 | 第38-40页 |
3.5 本章总结 | 第40-41页 |
第四章 分布式消息推送系统的实现 | 第41-53页 |
4.1 路由模块 | 第41-45页 |
4.1.1 设备注册 | 第41页 |
4.1.2 节点分配 | 第41-44页 |
4.1.3 签名机制 | 第44页 |
4.1.4 并发控制 | 第44-45页 |
4.2 推送模块 | 第45-46页 |
4.2.1 主题(Topic)消息路由 | 第45页 |
4.2.2 连接保活心跳 | 第45页 |
4.2.3 报文ID与消息ID | 第45-46页 |
4.3 存储模块 | 第46-49页 |
4.3.1 设备信息数据 | 第46页 |
4.3.2 消息内容存储 | 第46-47页 |
4.3.3 连接信息数据 | 第47-48页 |
4.3.4 关键数据关系模型 | 第48-49页 |
4.4 消息队列模块 | 第49-51页 |
4.4.1 收集用户身份识别码 | 第49页 |
4.4.2 向用户发送推送信息 | 第49页 |
4.4.3 从苹果获取卸载用户 | 第49-50页 |
4.4.4 消息分发 | 第50-51页 |
4.5 客户端接入 | 第51-52页 |
4.5.1 Android客户端接入 | 第51页 |
4.5.2 iOS客户端接入 | 第51-52页 |
4.6 本章总结 | 第52-53页 |
第五章 系统测试及分析 | 第53-68页 |
5.1 系统功能测试 | 第53-55页 |
5.2 系统性能测试 | 第55-62页 |
5.2.1 系统调优 | 第55-57页 |
5.2.2 推送服务性能测试 | 第57-58页 |
5.2.3 消息存储性能测试 | 第58-59页 |
5.2.4 API服务性能测试 | 第59-60页 |
5.2.5 消息队列性能测试 | 第60-62页 |
5.3 集群性能测试 | 第62-67页 |
5.3.1 推送集群性能测试 | 第62-63页 |
5.3.2 消息存储集群性能测试 | 第63-65页 |
5.3.3 消息队列集群性能测试 | 第65-67页 |
5.4 本章总结 | 第67-68页 |
第六章 总结和展望 | 第68-69页 |
参考文献 | 第69-72页 |
攻读硕士学位期间取得的研究成果 | 第72-73页 |
致谢 | 第73-74页 |
附件 | 第74页 |