【发布时间】:2014-08-11 08:59:16
【问题描述】:
像许多公司一样,我工作的公司不习惯使用 Apple 的 APNS:没有官方库、流被随机截断等...... Android 的推送系统也是如此:仅限于小批量,与 Apple 的 APNS 完全不同...这就是我们寻找替代方案的原因,当亚马逊声称能够几乎免费发送数百万条推送通知时,我们认为 SNS 将是完美的解决方案。
问题在于,我们经常需要处理超过一百万台设备,显然我们的推送活动很少针对相同的设备。 据我们挖掘,唯一的解决方案是使用 AWS API,它只提供一种方法来一次创建一个端点!这对我们来说意义重大,因为经过一些测试,我们发现为了创建 1 000 000 个端点,大约需要 15 小时(约 17 次调用/秒)。
即使在创建了所有端点之后,为了一次发送所有推送,还需要将端点添加到主题中,并且必须一次完成一个端点(因此需要 15 个小时以上) . 如果我们将调用多线程化,比如说 30 个线程,则仍然需要一个小时!
那么,谁能告诉我们是否有什么遗漏的地方?亚马逊真的希望我们在 30 小时内淹没他们的网络服务以创建一个推送活动吗?如果准备好几个小时,他们怎么能假装在一秒钟内发送一百万次推送?他们是否正在为 SNS 开发批处理 API?是否可以插入包含令牌的 Amazon DB 来提供 SNS 主题?
【问题讨论】:
-
请问,您是同步完成所有这些工作的吗?在创建下一个 EndpointArn 之前等待创建?我会和你做类似的事情,但计划所有调用都是异步的。我只是想根据你的经历来预测我可能会经历的事情。谢谢。
-
这里有同样的问题。亚马逊已将我的帐户添加到功能请求中,但我们知道这意义不大。与其费心为我们的用户订阅主题,我们只需将消息直接发送到发布 API,因为它相当于同一件事。仍然需要很长时间,我们需要能够每分钟下降 10,000 个。疯狂亚马逊不支持批量请求
-
您可以从 EC2 实例执行特定的请求限制。但是亚马逊没有告诉你它有多少……所以你应该启动大约 15 个 t2.micro 实例,这样每个 EC2 都会有自己的请求限制。使用这种方法,您的流程结束速度会快 15 倍
-
令人难以置信的是,AWS 不支持这 - 推送 SNS 是事后的想法,在现实生活场景中不可用
标签: performance amazon-web-services push-notification apple-push-notifications amazon-sns