26.app后端怎么架设推送服务

         推送服务已经是app的标配了。架设推送服务,除了可以使用第三方服务商外,也有大量的开源技术可以选择。

 

         现在推送主要分两块,android推送和ios推送,在下面分别论述:

 

1.    Android推送

 

Android手机由于没有系统的限制,当app进入了后台后,也能运行服务,所以android的推送可以基于长连接,这就注定了android的推送服务器和一般的app后端是不一样,技术细节上,架构上也不一样,幸好,现在有大量的开源软件可以轻松地实现推送。

 

下面深入研究过的开源推送软件:gopush-cluster为例,说明android推送服务的一般架构。

 

gopush-cluster,这是由猎豹移动开源的推送软件,已经被广泛应用于下面的业务:

 

微看、猎豹浏览器热剧推荐,追剧提示;

游戏的游戏活动推送;

手机助手app推荐,广告;

电池医生实时推荐、求生手册的实时消息;

PC毒霸的指令下发(web换肤,升级提示),漏洞泡泡等;

PC手机助手实时游戏、广告推荐;

PC猎豹浏览器上WEB

 

         和gopush-cluster架构师毛剑讨论技术,很感谢毛剑同学不厌其烦的解答,帮助我理清了很多gopush-cluster设计上不容易明白的地方,而且毛剑同学还是个美男架构师哦^-^

 

         下面对gopush-cluster的讲解来源于毛剑同学的博客,决定真实可靠的资料:

 

gopush-cluster的架构图:

 

 

主要分为三个模块来开发,comet/web/message。

 

(1)comet

 

主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取最大的消息是1,那么之后获取的消息就是大于1的,获取离线消息的时候也要从上次最大消息ID来获取),因此消息推送以后需要在comet中排队然后发起RPC给message实现存储。

 

(2)message

 

主要负责消息的存储和读写;接受来自comet模块的消息进行持久化,或者接受web模块的读取消息请求获取离线消息。message是可以部署多个节点来负载来自大量comet的推送压力,比如不同的comet使用不同的message节点(节点无状态),之后在comet也会做多message节点的负载均衡RPC调用和故障转移(TODO&

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newjueqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值