mpush调研
概述
mpush是github上开源的一个实时消息组件。底层使用netty,适合手机端app实时聊天场景。
系统架构
消息推送流程时序图如下,推送方不需要TCP长连接,接收方需要TCP长连接。
相当于客户端A和服务端建立了TCP通道后,客户端B发消息给A的时候,客户端B只需要推送给服务端,通过alloc+zookeeper负载均衡到一台push server上,push server分发消息到指定的客户端clientA
消息存储
mpush核心功能是实时消息,消息存在内存中。
redis是分发消息,做路由功能用到的。
zookeeper是alloc服务的负载均衡功能中用于寻找一个比较空闲的push server。
消息丢失
目前严格的测试,官方也没有提供测试报告,不确定是否存在消息的情形,上生产需要注意。
使用场景
mpush的功能比较完善,有IOS, Android的客户端SDK,push server的服务端的代码也非常清晰。模块划分一目了然。
可读性强,是个不错的项目,上生产风险比较小。
目前为止有两年没有更新了,git上的项目很多都是这样,中国程序员忙于生计,没有什么更新的动力。
相关文档
项目文档:http://mpush.mydoc.io/?t=134333
github: https://github.com/mpusher/
-------------------------
技术不在于多么高超先进巧妙,而在于要有现实价值!!!
技术不在于多么高超先进巧妙,而在于要有现实价值!!!