开源实时消息推送系统 MPush

系统介绍

mpush,是一款开源的实时消息推送系统,采用java语言开发,服务端采用模块化设计,具有协议简洁,传输安全,接口流畅,实时高效,扩展性强,可配置化,部署方便,监控完善等特点。同时也是少有的可商用的开源push推送系统。

特性和优势

  1. 源码全部开放,包括server、android、ios 、websocket等
  2. 代码质量高,全部模块化设计,真正的商用级产品,考虑到推送中遇到的大部分场景
  3. 安全性高,基于RSA精简的加密握手协议,简单,高效,安全
  4. 支持断线重连,及弱网下的快速重连,无网络下自动休眠节省电量和资源
  5. 协议简洁,接口流畅,支持数据压缩,更加节省流量
  6. 支持集群部署,支持负载均衡,基于成熟的zookeeper实现
  7. 用户路由使用redis集群,支持单写,双写,集群分组;性能好,可用性高
  8. 支持http代理,一根TCP链接接管应用大部分请求,让http请求更加及时
  9. 高度可配置化,基本上通过修改配置可满足大部分场景
  10. 扩展性强,高度模块化,基于SPI模式的可拔插设计,以满足特殊需求
  11. 监控完善,日志详细,可快速排查线上问题及服务调优

教程与文档

源码

时间: 2024-10-04 23:16:58

开源实时消息推送系统 MPush的相关文章

MPush开源消息推送系统:简洁、安全、支持集群

引言 由于之前自己团队需要一个消息推送系统来替换JPUSH,一直找了很久基本没有真正可用的开源系统 所有就直接造了个轮子,造轮子的时候就奔着开源做打算的,只是后来创业项目失败一直没时间整理 这一套代码,最近比较闲就拿出来给开源做点贡献. 作为Java版的开源推送系统,MPUSH还是有很多不错的设计的,特别是对想自己搭建一套推送系统的团队 是有很大的借鉴意义的.当然开源出来也是不想曾经做过的工作白白浪费掉,特别希望对这方面有兴趣的同学 来一起把这套东西做的更好,服务更多的用户! 项目主页 http

基于socket.io的实时消息推送

用户访问Web站点的过程是基于HTTP协议的,而HTTP协议的工作模式是:请求-响应,客户端发出访问请求,服务器端以资源数据响应请求. 也就是说,服务器端始终是被动的,即使服务器端的资源数据发生变化,如果没有来自客户端的请求,用户就不会看到这些变化. 这种模式是不适合某些应用场景的,比如在社交网络用户需要近乎实时地知道其他用户最新的信息.对于普通站点来说, 请求-响应模式可以满足绝大多数的功能需求,但总有某些功能我们希望能够为用户提供实时消息的体验. 为解决这个问题,有两种方案可以选择: 仍旧使

读《架构师于小波:魅族实时消息推送架构》总结

原文网址:http://www.csdn.net/article/2015-12-22/2826542 1.系统架构设计.系统架构逻辑上划分,划分为四层,最下面的一个是提供魅族手机的接入.第二层是消息分发服务,主要的作用就是提供上行消息的路由和用户下行消息的路,这边有一个用户路由表.第三层是订阅信息,第四层是存储,包括离岸消息存储,包括订阅消息的存储. 2.手机功耗问题主要涉及两个点,第一个是流量,第二个是电量.先看流量的问题,怎么样解决流量的问题,通过协议选择,现在传统的互联网上,有比较典型的

设计一个百万级的消息推送系统

原文链接:https://crossoverjie.top/2018/09/25/netty/million-sms-push/ 前言 首先迟到的祝大家中秋快乐. 最近一周多没有更新了.其实我一直想憋一个大招,分享一些大家感兴趣的干货. 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天??). 先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互. 最主要的工作就是要有一个系统来支持设备的接入.向设备推送消息:同时还得满足大量设备接入

如何使用Netty技术设计一个百万级的消息推送系统 原 荐

先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互. 最主要的工作就是要有一个系统来支持设备的接入.向设备推送消息:同时还得满足大量设备接入的需求. 所以本次分享的内容不但可以满足物联网领域同时还支持以下场景: 基于 WEB 的聊天系统(点对点.群聊). WEB 应用中需求服务端推送的场景. 基于 SDK 的消息推送平台. 技术选型要满足大量的连接数.同时支持双全工通信,并且性能也得有保障. 在 Java 技术栈中进行选型首先自然是排除掉了传统 IO. 那就

一篇文章教你如何设计一个百万级的消息推送系统

前言 先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互. 最主要的工作就是要有一个系统来支持设备的接入.向设备推送消息:同时还得满足大量设备接入的需求. 所以本次分享的内容不但可以满足物联网领域同时还支持以下场景: 基于 WEB 的聊天系统(点对点.群聊). WEB 应用中需求服务端推送的场景. 基于 SDK 的消息推送平台. 技术选型 要满足大量的连接数.同时支持双全工通信,并且性能也得有保障. 在 Java 技术栈中进行选型首先自然是排除掉了传统 IO

如何实现消息推送系统

1.前言 随着IOS,Android应用的普及,对推送消息的需求也越来来重要,目前市面上有的个推推送.极光推送.友盟推送等等,那如何自己搭建一个推荐系统昵? 2.名词说明: 设备端:消息接收方: 消息服务:负责和设备端建立连接,并推送消息给设备端 消息系统: 消息服务集群: 路由系统:根据消息服务的负责返回合适的消息服务给设备端(主要负责监控当前可用的消息服务.监控当前消费服务的负载情况,返回合适的消息服务给设备端) 业务系统:消息系统之外的其它业务系统: 平台:包括设备端和前端页面系统: 3.

设计一个百万级的消息推送系统----转

技术选型 要满足大量的连接数.同时支持双全工通信,并且性能也得有保障. 在 Java 技术栈中进行选型首先自然是排除掉了传统 IO. 那就只有选 NIO 了,在这个层面其实选择也不多,考虑到社区.资料维护等方面最终选择了 Netty. 最终的架构图如下: 协议解析 既然是一个消息系统,那自然得和客户端定义好双方的协议格式. 常见和简单的是 HTTP 协议,但我们的需求中有一项需要是双全工的交互方式,同时 HTTP 更多的是服务于浏览器.我们需要的是一个更加精简的协议,减少许多不必要的数据传输.

WebSocket与消息推送

B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链接,但不容易直接完成实时的消息推送功能,如聊天室.后台信息提示.实时更新数据等功能,但通过polling.Long polling.长连接.Flash Socket以及HTML5中定义的WebSocket能完成该功能需要. 一.Socket简介 Socket又称"套接字",应用程序通常通过