如何订阅/取消订阅自动缩放组中的每个服务器到SNS

时间:2015-02-10 15:13:37

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

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

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

2 个答案:

答案 0 :(得分:0)

在Spring世界中,我们有一个@PostConstruct,可以在服务器启动时调用,在那里你可以订阅给定主题的“this.server”url(你可能需要构建一个正常工作的订阅URL - 使用InetAddress et el)

因此有使用@RestController的工作订阅URL确认这样的订阅瞬间导致sns端点被注册。任何新服务器都会做同样的事情,也就是自己注册(创建新堆栈时)。我们还需要额外的代码来随后使用通知消息,并在确认的订阅端点收到通知消息时执行某些操作。

答案 1 :(得分:0)

AWS希望您使用SNS的方式不是通过直接订阅它。任何需要在组件中触发某些内容的通知都应该使用SQS队列缓冲通知。出于这个原因,我们选择使用亚马逊管理的Redis发行版,使用可变/可扩展的Subs组来做Pub-Sub。