苹果的 Apns 推送服务器工作原理是什么,为什么不卡?

2018-05-25 09:54:51 +08:00
 maxxfire

从资料上看,Apns 是通过向每台设备的 token 发送推送来实现。单单 QQ 就有几亿的用户在发消息,那如果要发 1000 万条消息,就要发 1000 万个设备 token,那不是慢死了。而且世界上有那么多的 App 要实时推送,那它的并发量该有多大呢,那 Apns 服务器怎么不会被累死。

为什么 Apns 不像 Dns 系统一样,厂商可以自行搭建 Dns 解析服务器,然后通过授权的方式进行分级的解析,从而降低根服务器的负载呢?

苹果的 Apns 推送服务器到底有多少多强大? 这得多少投入,推送还是免费的。。

7582 次点击
所在节点    iOS
63 条回复
Anhedonia
2018-05-25 17:20:57 +08:00
@kera0a 用 2012 年的销量推 2017 年的 iPhone 在用量
这人真是 2333333
dex2jar
2018-05-25 17:26:20 +08:00
@Anhedonia 大哥,我求求你装个浏览器,学会搜索好不好。学不会我把链接给你好了。
http://www.baidu-x.com/?q=2017+%E5%9C%A8%E7%94%A8iPhone%E6%95%B0%E9%87%8F
dex2jar
2018-05-25 17:29:12 +08:00
@Anhedonia 然后苹果的日均是 70 亿。(这个是 kera0a 给的数据) 2012 年苹果的销量是 2 亿(这是我查的数据)。。真正使用的越活用户算多少合适?就算是 2 亿,总不能 1 亿吧,毕竟还有之前销售的手机。(这才是我推测的数量,因为没找到)那么 2017 在用的 iPhone 是 7.5 亿(这是查到的数据).推送量给他翻 4 倍,也是 280 亿的推送量。。(这是推测的数据)何来远远超过 380 亿这一说。
学好语文这么难吗
kera0a
2018-05-25 17:34:41 +08:00
@dex2jar
先说下对不起,之前手一快骂了你一句

我上面说的简单计算不是你说的这样啊
算增长不应该是拿全世界的厂商推送数量增长来对比嘛?发推送的是厂商又不是用户设备
例如头条 2012 年每天新闻推送量和 2017 年的推送量增长
假如设备量不变,世界厂商推送量增长了 10 倍,那也增长到了 700 亿了啊
然后设备还变多了 4 倍
kera0a
2018-05-25 17:35:35 +08:00
@dex2jar 然后你继续吧,我要下班了,有事周一回复
dex2jar
2018-05-25 17:48:41 +08:00
@kera0a 是有这么道理。但是这个增长量就无法预估了吧。但是就算是 10 倍,也称不上远远超过。700 亿对于( 380+61 亿) 441 亿的数量称不上是吊打吧。差不多数量级的东西。
而且五年时间要 10 倍的话每年的增长百分之 60.。。这玩意的增长量太恐怖了吧。
回归我前面说的,qq/微信都能达到,苹果这个技术并没有达到“黑科技”的地步。
技术很强,但是成本不一定非常搞。至少不是像谷歌搜索一样的那种常人无法理解的技术难度。
loveCoding
2018-05-25 17:51:53 +08:00
只要能水平拓展+有钱 问题都不大...
LZRng
2018-05-25 19:09:23 +08:00
其实最大的点是苹果推送居然花了这么大价钱我都不知道
xbiyy
2018-05-25 20:16:14 +08:00
所以可以这么理解,你买的手机里有部分是推送服务的钱

也就是国内安卓推送要是没有 Google,想统一还要解决钱的问题

按照苹果占有率 14%算,安卓是苹果的五倍多……
mooczz
2018-05-25 20:16:46 +08:00
这楼不该点进来,隔着屏幕都能感受到有些人的气急败坏
ePingTu
2018-05-25 23:20:19 +08:00
即时通讯的推送逻辑有没有想过另一层级:就是 app 退出或在后台时靠的是 APNS,而当进入前台开聊的时候都是直接 Get 或及时通讯后弹的本地通知呢?
SourceMan
2018-05-25 23:29:24 +08:00
我觉得楼上 2 个人说的都很有道理
起码没人说人家是疯狗,产出观点还产出数据
谁胜谁败我倒是看不清楚了
chengluyu
2018-05-25 23:47:29 +08:00
本帖已被收入“这也能吵”系列……
mornlight
2018-05-26 09:17:01 +08:00
Apple 的设备和 APNs 维持 TCP 长连接,保证推送及时。维持几十亿连接没有你想得那么难。
CommandZi
2018-05-26 09:45:28 +08:00
@dex2jar “推送量给他翻 4 倍”是怎么推断出来的?
dex2jar
2018-05-26 11:09:34 +08:00
@CommandZi 前面提到的,因为只查到 2012 年的苹果销量是两个亿,假设苹果 2012 年的活跃用户是两亿(应该不止,因为还有旧设备),2017 年在用的 iPhone 设备是超过 7 亿的。7/2=3.5,我算 4 倍。这个 4 倍是相对于 2012 年苹果的推送量的 4 倍。。
这个数据不严谨,但是已经是对苹果最好的数据,因为如果 2012 年活跃设备超过 2 亿,比如 3 亿。那么苹果的推送量就是 7/3,不到三倍了。
当然,这一切的前提是厂商的单设备推送量没有翻三倍的前提。
CastleBUPT
2018-05-26 11:59:25 +08:00
@dex2jar
2017 年底 AppStore 的 app 总数 210 万,2012 年 3 月为 55 万,所以你的 4 倍并不是所谓的“对苹果最好的数据”。
dex2jar
2018-05-26 12:29:59 +08:00
@CastleBUPT app 数!=app 推送量。
你要查也是查安装量。app 总数 4 倍了,不代表安装量 4 倍。
dex2jar
2018-05-26 12:33:46 +08:00
@CastleBUPT 而且推送量多的就那几个 app。并不会随 app 总数增加而增加
CastleBUPT
2018-05-26 13:32:18 +08:00
@dex2jar
app 总安装量不可能拿得到啊,你也是在猜啊,有什么好跟人撕的呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/457640

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX