【问题标题】:How to subscribe/unsubscribe each server in an auto-scaling group to SNS如何将自动缩放组中的每个服务器订阅/取消订阅 SNS
【发布时间】:2015-04-10 16:35:24
【问题描述】:

我们正在使用 Elastic Beanstalk 来提供 REST API。现在,我想开发一个端点,以异步方式提供来自 SNS 主题的通知。

为了接收这些通知,我需要将 API 服务器订阅到 SNS 主题。考虑到 EBS 应用程序可以扩展到多台服务器并再次缩小的情况,我怎么能做到这一点?我不希望订阅 SNS 主题的死链接很多...

【问题讨论】:

    标签: asynchronous amazon-web-services autoscaling amazon-sns


    【解决方案1】:

    在春季世界中,我们有一个@PostConstruct,它在服务器启动时被调用,您可以在其中订阅“this.server”网址到给定的主题(您可能需要构建一个正确的工作订阅网址——使用 InetAddress 等) .

    因此存在使用 @RestController 的有效订阅 url,它会立即确认此类订阅会导致 sns 端点被注册。任何新服务器都会做同样的事情,也就是自己注册(创建新堆栈时)。我们还需要额外的代码来后续消费通知消息,并在确认订阅端点收到通知消息时做一些事情。

    【讨论】:

      【解决方案2】:

      AWS 希望您使用 SNS 的方式不是直接订阅它。任何需要在组件中触发某些东西的通知都应该使用 SQS 队列缓冲通知。出于这个原因,我们选择使用 Amazon 托管的 Redis 分发对一组可变/可扩展的 Sub 进行 Pub-Sub。

      【讨论】:

        猜你喜欢
        • 2016-07-23
        • 1970-01-01
        • 2021-02-25
        • 2022-01-19
        • 2012-03-14
        • 2017-04-18
        • 2016-02-28
        • 2019-02-11
        • 1970-01-01
        相关资源
        最近更新 更多