如何将弹性beanstalk应用程序中的特定实例订阅到SNS主题?

时间:2017-02-01 17:22:38

标签: socket.io elastic-beanstalk amazon-sns

好的,我有一个弹性beanstalk应用程序,带有可扩展的Web层,在ELB后面提供服务。简而言之,我需要能够将我的Web层中的特定实例订阅到SNS主题。我可以安全地使用标准方法来获取实例IP地址(详见python here How can I get the IP address of eth0 in Python?),然后只使用该IP作为http订阅者订阅SNS主题吗?

为什么呢?好问题......

我的数据模型由许多对象组成,其中许多对象可能具有一组附加的用户,这些用户可能希望能够观察这些对象。我的应用程序中的这个Web层负责处理客户端应用程序的套接字接口(使用socket.io)。

在系统中创建用户时,用户的SNS主题也是如此,允许在感兴趣的对象发生更改时将通知推送给该用户。我计划设置它的方式,客户端应用程序将通过socket.io连接到EB,此时它连接的服务器实例将订阅该用户的SNS主题。然后,当一个有趣的对象发生变化时,通知将被发布到相关用户的主题,从而通知服务器实例客户端应用程序具有开放连接,然后可以向套接字发送消息。

我认为特定实例是订阅而不是Web层的外部CNAME或ip非常重要,因为客户端应用程序连接到特定实例,因此只有该实例可以通过它发送消息&#39 ; s socket。订阅负载均衡器并不好,因为通知可能会传递给用户未连接的实例。

我认为最重要的问题是我所需要的,但如果我的推理看起来有缺陷,我会对创造性的解决方案持开放态度吗?

1 个答案:

答案 0 :(得分:0)

只是让任何人陷入同样的​​兔子洞...解决方案是使用Redis pub / sub而不是SNS和SQS。