我可以将 SNS 用于服务器端 Pub/Sub 吗?

Can I use SNS for a server side Pub/Sub?

现在我在我的服务器端应用程序上使用 Redis 作为 Pub/Sub 模式。转到 AWS,我想知道 SNS 是否可以满足相同的要求。

据我所知,SNS 正在实施相同的模式,但有点奇怪。我发现的所有文档都假定订户是客户端应用程序(电子邮件、短信、移动应用程序等),而我希望仅将 SNS 用于服务器端。

到目前为止我遇到的 SNS 的一个奇怪部分是有一个 unsubscribe 方法!对我来说,一旦你停止订阅,你就不会收到消息,也没有必要取消订阅任何东西。但是,当我看到一个取消订阅方法时,它让我觉得在这个 Pub/Sub 中,发布者每次有新消息要传递时都会尝试建立连接。这与我正在寻找的连接保持活动状态以便订阅者能够接收消息的情况完全不同。有人可以确认一下吗?

有人可以给我指出一个使用服务器端 javascript(节点)代码订阅主题的示例吗?

对于服务器端 pub/sub 模式,您的服务器来来去去(如在 Auto Scaling 场景中),SNS 不是一个很好的服务。退订是 SNS 的一个问题,连接不会持续。

相反,您应该坚持为 pub/sub 使用 Redis。您可以将 AWS ElastiCache 用于您的 Redis 服务器以使用 AWS 服务。