
1. 消息中心(由Node.js+Socket.io实现)负责消息的推送。为了保证有良好的性能,部署了两台服务器。通过Nginx做负载均衡。
2. 消息代理服务(由J2EE实现) 负责消息的转发。消息代理服务类似于一个App客户端,当后台要向所有的App端推送消息时,通过消息代理服务将消息转发到消息中心,在通过消息中心进行消息的广播。
为了保证稳定性,消息代理服务部署在两台服务器,两台服务同时监控ActiveMQ的一个消息队列。
3. 消息路由(采用ActiveMQ),当要发送消息时,将消息写入到ActiveMQ的一个队列,消息代理服务监听到有新的消息要发送时,则进行转发。
4. 缓存(采用Redis) 一方面Socket.io采用集群方式时用于各进程之间的消息共享,另一方面暂时存储消息的相关内容。
5. 数据存储(采用MySql) 消息内容的持久化存储
6. 公共接口(采用Tomcat作为应用服务器) 提供Http接口 以便于消息的订阅和发送
7. 一次完整的消息推送过程(比如向football这个群组中推送消息)
主要实现功能
1. 消息的订阅与解除订阅
2. 点对点消息推送
3. 针对主题(Topic)进行消息推送
4. 针对所有人进行消息广播
5. 针对主题(Topic)中的所有人进行点对点推送
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-1216979/ ,如需转载,请注明出处,否则将追究法律责任。