好的,所以我有一个可伸缩Web层的弹性beanstalk应用程序,在ELB后面提供服务。 长话短说,我需要能够在我的networking层中订阅特定的实例到SNS主题。 我使用标准方法获取实例ip地址是安全的吗(详见python这里我怎样才能得到eth0在Python中的IP地址?),然后简单地订阅一个SNS主题,使用该ip作为http订户?
为什么? 好问题…
我的数据模型是由许多对象组成的,其中许多对象可能有一组用户可能希望能够观察这些对象。 我的应用程序中的这个Web层负责处理客户端应用程序的套接字接口(使用socket.io)。
在系统中创build用户时,对用户来说也是一个SNS主题,允许在用户感兴趣的对象发生变化时将通知推送给该用户。 按照我打算设置的方式,客户端应用程序将通过socket.io连接到EB,此时连接到的服务器实例将订阅该用户的SNS主题。 然后,当有趣的对象发生变化时,通知将被发布到关联的用户主题,从而通知服务器实例客户端应用程序已打开连接,然后可以向套接字发送消息。
我相信重要的是特定的实例订阅,而不是Web层的外部CNAME或IP,因为客户端应用程序连接到特定的实例,所以只有该实例可以通过它的套接字发送消息。 订阅负载均衡器将不太合适,因为通知可能会传递给用户未连接到的实例。
我相信顶端的问题是我所需要的,但如果我的推理看起来有缺陷,我可以开放创造性的解决scheme。
这种架构不适合您的使用情况。
相反,请尝试: