引言
由於之前自己團隊需要一個消息推送系統來替換JPUSH,一直找了很久基本沒有真正可用的開源系統
所有就直接造了個輪子,造輪子的時候就奔着開源做打算的,只是後來創業項目失敗一直沒時間整理
這一套代碼,最近比較閒就拿出來給開源做點貢獻。
作爲Java版的開源推送系統,MPUSH還是有很多不錯的設計的,特別是對想自己搭建一套推送系統的團隊
是有很大的借鑑意義的。當然開源出來也是不想曾經做過的工作白白浪費掉,特別希望對這方面有興趣的同學
來一起把這套東西做的更好,服務更多的用戶!
項目主頁
系統介紹
mpush,是一款開源的實時消息推送系統,採用java語言開發,服務端採用模塊化設計,具有協議簡潔,傳輸安全,接口流暢,實時高效,擴展性強,可配置化,部署方便,監控完善等特點。同時也是少有的可商用的開源推送系統。
特性和優勢
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
源碼
server https://github.com/mpusher/mpush
java-client https://github.com/mpusher/mpush-client-java
android sdk&demo https://github.com/mpusher/mpush-android
iOS sdk https://github.com/mpusher/mpush-client-swift