我有一个应用程序逻辑,要求我将用户设备划分为订阅不同类型的“频道/主题”的组。
然后,我想向特定主题或频道的所有订阅者发送广播消息。
我可以拥有多达 500,000 个主题或频道,以及每个频道多达 20,000 个订阅者。
由于 AWS SNS 每个频道限制为 3,000 个主题和 10,000 个订阅者,因此他们的常见问题解答建议您使用直接寻址,这意味着我自己一个接一个地发送。他们建议我们也走这条路,如果我们有大量的..
AWS SNS 没有批量发布功能,所以我实际上需要为每个订阅者发出一个 SNS 发布请求,这可以达到数万个请求。
所以我发现 AWS-PHP-SDK 是建立在 Guzzle 之上的,并且支持通过 multi curl 进行并行请求处理,但即便如此,如果我同时运行 20 个连接,我仍然需要发出这么多请求......甚至有效率?如果我有大容量,为什么推荐这样做?
又想到另一个问题,如果我需要自己一个一个地向每个订阅者发送相同的消息,为什么要使用 SNS?
Apple APNS 服务通过打开 TCP 连接并写入请求字节来工作,每个请求都有不同的订阅者详细信息,但我可以只写入字节而无需构建 PHP 请求和处理 20 个进程的开销。将我的消息发送给所有主题/频道订阅者不是更快吗?
在这些类型的情况下,我对 AWS SNS 服务的权衡和附加值感到有些困惑。我希望能从有这方面经验的人或 AWS 员工那里获得一些见解。
谢谢你