mpush调研

概述

mpush是github上开源的一个实时消息组件。底层使用netty,适合实时聊天场景。

系统架构

消息推送流程时序图如下,推送方不需要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/

猜你喜欢

转载自www.cnblogs.com/geektcp/p/12928786.html