引言
由於之前自己團隊需要一個消息推送系統來替換JPUSH,一直找了很久基本沒有真正可用的開源系統
所有就直接造了個輪子,造輪子的時候就奔着開源做打算的,只是后來創業項目失敗一直沒時間整理
這一套代碼,最近比較閑就拿出來給開源做點貢獻。
作為Java版的開源推送系統,MPUSH還是有很多不錯的設計的,特別是對想自己搭建一套推送系統的團隊
是有很大的借鑒意義的。當然開源出來也是不想曾經做過的工作白白浪費掉,特別希望對這方面有興趣的同學
來一起把這套東西做的更好,服務更多的用戶!
項目主頁https://mpusher.github.io
系統介紹
mpush,是一款開源的實時消息推送系統,采用java語言開發,服務端采用模塊化設計,具有協議簡潔,傳輸安全,接口流暢,實時高效,擴展性強,可配置化,部署方便,監控完善等特點。同時也是少有的可商用的開源push推送系統。
特性和優勢
1. 源碼全部開放,包括server、android、ios (不像有些開源服務只開放部分代碼,鄙視下)
2. 代碼質量高,全部模塊化設計,真正的商用級產品,考慮到推送中遇到的大部分場景
3. 安全性高,基於RSA精簡的加密握手協議,簡單,高效,安全
4. 支持斷線重連,及弱網下的快速重連,無網絡下自動休眠節省電量和資源
5. 協議簡潔,接口流暢,支持數據壓縮,更加節省流量
6. 支持集群部署,支持負載均衡,基於成熟的zookeeper實現
7. 用戶路由使用redis集群,支持單寫,雙寫,集群分組;性能好,可用性高
8. 支持http代理,一根TCP鏈接接管應用大部分請求,讓http請求更加及時
9. 高度可配置化,基本上通過修改配置可滿足大部分場景
10. 擴展性強,高度模塊化,基於SPI模式的可拔插設計,以滿足特殊需求
11. 監控完善,日志詳細,可快速排查線上問題及服務調優
教程與文檔
開發手冊:https://mpusher.github.io/docs
源碼
- group https://github.com/mpusher/ 源代碼空間
- server https://github.com/mpusher/mpush 服務端源碼
- alloc https://github.com/mpusher/alloc 調度器源碼
- mpns https://github.com/mpusher/mpns 個性化推送中心源碼
- java-client https://github.com/mpusher/mpush-client-java 純java客戶端源碼
- android sdk&demo https://github.com/mpusher/mpush-android 安卓SDK和DEMO源碼
- IOS sdk(swift) https://github.com/mpusher/mpush-client-swift swift版客戶端源碼
- IOS sdk(OC) https://github.com/mpusher/mpush-client-oc Object C 客戶端源碼
幫助與支持
- 官網:https://mpusher.github.io
- 文檔:https://mpusher.github.io/docs
- QQ群:114583699