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/

 

posted @ 2020-05-21 10:05  狂奔的骆驼  阅读(1728)  评论(1编辑  收藏  举报