【问题标题】:How to subscribe a specific instance within an elastic beanstalk application to an SNS topic?如何将弹性 beanstalk 应用程序中的特定实例订阅到 SNS 主题?
【发布时间】:2017-06-18 13:23:22
【问题描述】:

好的,所以我有一个具有可扩展 Web 层的弹性 beanstalk 应用程序,在 ELB 后面提供服务。长话短说,我需要能够为我的 Web 层中的特定实例订阅 SNS 主题。我使用标准方法获取实例 ip 地址是否安全(详见 python 此处 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 很重要,因为客户端应用程序连接到特定实例,因此只有该实例才能通过其套接字发送消息。订阅负载均衡器并不好,因为通知可能会传递到用户未连接到的实例。

我相信上面的问题就是我所需要的,但如果我的推理似乎有缺陷,我愿意接受创造性的解决方案??

【问题讨论】:

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


    【解决方案1】:

    以防万一有人被困在同一个兔子洞里……解决方案是使用 Redis pub/sub 而不是 SNS 和 SQS。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多