6

我需要在几秒钟内像 Urban Airship 一样发送数百万个苹果推送通知

我使用了以下

我有几台专用服务器,我可以在几秒钟内发送数千条推送通知,但是如何在几秒钟内发送像 Urban Airship 一样的数百万条苹果推送通知?

4

3 回答 3

9

每台服务器执行特定任务的能力都是有限的。您不能假设具有某些 xyz 配置的专用服务器将为您的应用程序实现每个 NFR。您必须进行服务器容量规划才能实现应用程序 NFR。如果您的专用服务器能够在 1 秒内发送 10K 的推送通知并优化服务器和应用程序的配置,并且您希望在 1 秒内实现 20K 的通知,则您必须对服务器进行水平/垂直缩放。

在水平扩展中,您放置另一个并行实例并在它们之间划分任务,但是在垂直扩展中,您可以扩展同一服务器以获得更高的配置。不推荐垂直缩放,因为它具有单点故障。

为了扩展您的问题,您必须并行放置另一个实例,以在它们之间划分推送通知发送任务。例如,如果您想在一秒钟内为 20K 设备发送 20K 推送通知,您可以将前 10K 分配给第一台服务器,将接下来的 10K 分配给另一台服务器。这将实现您在一秒钟内发送 20K 推送通知的 NFR。

于 2012-08-29T05:53:36.287 回答
4

我的 2cents 价值。

最大 Apple 推送负载 = 255 字节

100 万台 iOS 设备 = 1,000,000

将其打包成一个文件 = 255,000,000 字节 = 255MB。

打开 TCP 连接 + 将所有内容转发到 APNS 网关。这是我能想到的最快的方法。在将您的有效负载分派到目标 APNS 服务器网格之前,将它们预处理并预打包到本地的单个或多个文件中。

于 2012-09-07T10:02:10.707 回答
2

这取决于您的带宽和服务器的处理速度。单个服务器无法每秒发送 142857 个数据包,包括有效负载,这就是您看到限制的原因。

您将需要多个专用服务器和一个控制服务器,该控制服务器将通过内部 API 将单个作业发送到 APN 服务器,这样可以分发作业。

于 2012-08-29T05:55:23.137 回答