我正在尝试提出在 AWS 中扩展聊天服务的最佳解决方案。我想出了几个潜在的解决方案:
Redis Pub/Sub - 当用户建立与服务器的连接时,该服务器订阅该用户的 ID。当有人向该用户发送消息时,服务器将使用该用户的 id 向通道执行发布。用户连接的服务器将接收消息并将其推送到适当的客户端。
SQS - 我想过为每个用户创建一个队列。用户连接的服务器将轮询(或使用 SQS 长轮询)该队列。当发现新消息时,它将从服务器推送给用户。
SNS - 在我发现 100 个主题限制之前,我真的很喜欢这个解决方案。我需要为每个用户创建一个主题,该主题仅支持 100 个用户。
他们还有其他方式可以使用 AWS 扩展聊天吗?SQS 方法可行吗?AWS 将消息添加到队列需要多长时间?