[1]Mpush架构图及源码分析
因为是刚刚开始学习做消息推送,需要学习的东西还有很多,欢迎留言评论、互相关注、互相学习!!!
一、架构图
这是两张Mpush的系统架构图,可以很清楚的看到部署分为四部分:
- Redis集群、zookeepe集群、Alloc调度器
- Mpush服务端
- Mpns业务推送系统
- 客户端SDK
二、源码
以GitHub上为例,源码主要分为:
- 服务端源码:Mpush Server
- 调度器源码:Alloc
- 个性化推送中心源码:Mpns
- 客户端代码:Java-client、Android SDK、IOS SDK(swift、OC)
三、部署流程:
- JDK(>=1.8)
- Zookeepe
- Redis
- Mpush Server
- Alloc(亲测Mpush Server和Alloc启动之后、中途重启Mpush Server会出现接收不到推送消息,Alloc要在Mpush Server之后启动)
四、架构图与源码对应关系
JDK、Redis、zookeepe、Mpush Server、Alloc依次部署完成之后按照官网文档测试,测试没问题之后,这几项基本上不用动,维护就行了。
然后就是Mpns业务系统的开发了。
这里就要说几点个人的理解,以下仅供参考,如有错误请指出:
第一:强烈建议多看几遍官方文档、不要去看源码,就看各部分模块之间的关系、架构关系
第二:分清楚Mpush Server(Mpush-boot)、服务端SDK(Mpush-client)、纯Java客户端源码(MpushClient(Java))三者之间关系。
Mpush Server是Mpush服务端源码,只需要部署维护就可以了;
<dependency><groupId>com.github.mpusher</groupId><artifactId>mpush-boot</artifactId><version>x.y.z</version>
</dependency>
服务端SDK(Mpush-client),虽然叫client但不是客户端代码不要搞混了,是你要集成开发业务系统的SDK工具源码,集成Springboot开发就是用这个SDK,例如官网提供的mpns模板,提供给指定人push接口,查询mpush server 列表接口、查询mpushServer在线用户数接口;
<dependency><groupId>com.github.mpusher</groupId><artifactId>mpush-client</artifactId><version>x.y.z</version>
</dependency>
纯Java客户端源码,这个是Java版的客户端源码,我个人的理解是:你在调用小米、华为的消息推送平台接口时候,除了要获取应用的AppID, AppKey, AppSecret,你还会去官网下载对应的服务端Java SDK,这个服务端Java SDK就和MpushClient(Java)一样,它对于用户是服务端SDK,对于我们就是提供给用户的客户端SDK,就和Android SDK、IOS SDK一样是提供给用户使用的。
<dependency><groupId>com.github.mpusher</groupId><artifactId>mpush-client-java</artifactId><version>x.y.z</version>
</dependency>
待续......
因为是刚刚开始学习做消息推送,需要学习的东西还有很多,欢迎留言评论、互相关注、互相学习!!!
[1]Mpush架构图及源码分析相关推荐
- SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发
SRS流媒体服务器架构设计及源码分析 1.SRS流媒体服务器架构设计 2.协程-连接之间的关系 3.推流-转发-拉流之间的关系 4.如何手把手调试SRS源码 视频讲解如下,点击观看: SRS流媒体服务 ...
- Spring_AOP架构介绍与源码分析(含事务深度分析)
请见链接:http://edu.51cto.com/course/16573.html?source=so 第1章课程介绍6分钟1节 1-1课程介绍[免费试看]06:11 第2章AOP深入分析52分钟 ...
- SDIO_WiFi驱动学习之SDIO架构介绍及源码分析
一.引言 因为WiFi驱动比较复杂,所以WiFi驱动的博客将多分几篇来写. 本篇博客主要介绍Linux下的SDIO架构及源码分析. 本文部分内容摘抄自网络,若有侵权,请联系删除. 二.SDIO WiF ...
- 架构师3- zk源码分析
3 ZooKeeper序列化和网络通信协议详解 序列化机制 zookeeper. jute 包 0:23:00 0:33:00 4个类 (Record InputArchive OutputArchi ...
- java获取当前周一_Java互联网架构-Spring IOC源码分析
欢迎关注头条号:java小马哥 周一至周日下午三点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 源码介绍之前,看几个问题: Bean的承载对象是什么? Bean的定义如何存储的? B ...
- 海思3518E sample的整体架构venc层源码分析
1.sample的整体架构 -> sample其实是很多个例程,所以有很多个main.sample里面不止一个程序. -> 每一个例程面向一个典型应用,common是通用性主体函数,com ...
- 【Kafka】Kafka Producer整体架构概述及源码分析
1.概述 转载并且补充:原文地址:https://blog.csdn.net/XU906722/article/details/104420045 本文基于Kafka 0.11 版本 2.整体架构 2 ...
- apache dubbo 源码分析系列汇总
Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成.后面捐献给了知名的开源社区 ...
- Nginx 源码分析
1.工程 ngx_conf_file.c ngx_connection.c ngx_cycle.c ngx_file.h ngx_module.c ngx_open_file_cache.h ngx_ ...
- ENS最新合约源码分析二
ENS(以太坊域名服务)智能合约源码分析二 0.简介 本次分享直接使用线上实际注册流程来分析最新注册以太坊域名的相关代码.本次主要分析最新的关于普通域名注册合约和普通域名迁移合约,短域名竞拍合约不 ...
最新文章
- macos下使用aria2_用Aria2代替Firefox内置的下载器
- (11)Xamarin.iOS - 新增iPhone storyboard
- 恶犬秒变萌汪:东京大学开源“治愈系”GAN图片拼贴工具 | 技术头条
- java第5天_java第5天的代码
- Access数据库审计工具mdbtools
- 关于软件产品服务有感
- centos6.7一键装机
- mes实施顾问前景如何_国匠智能制造培训|MES的两种实施顾问类型
- oa服务器怎么修改域名,oa域名服务器配置
- SpringCloud 入门教程(八): 断路器指标数据监控Hystrix Dashboard 和 Turbine
- CCF 201512-1 数位之和
- java高并发编程讲解_有人看过 java高并发编程详解 汪文君著 这本书吗?
- 树莓派摄像头模块(Pi Cam)的安装使用
- 球坐标系下拉普拉斯方程求解(Laplace equation)二
- 冒险岛手游哪个服务器稳定,冒险岛手游职业选择攻略 骨灰级玩家心得分享
- python中卡方检验_python 使用卡方检验
- 【1月7日】议程正式公布!年度AIoT产业盛典重磅来袭!
- 【安全牛苑房弘】Kali Linux 环境熟悉
- GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读
- python ip地址转换_Python实现将IP地址转换为数字