2

目前我们有一个处理来自外部 JMS 消息队列的消息的系统。在我们的蓝绿部署中,激活堆栈的一部分是修改安全组以启用/禁用连接到外部 JMS 队列所需的规则,以便只有活动堆栈可以处理消息。这对我们当前的环境非常有用,但是外部队列并不那么可靠,因此我们希望将其替换为 SNS 主题 + SQS 队列。我们计划有一个订阅 SNS 主题的静态 SQS 队列。我们遇到的问题是如何启用/禁用从 SQS 队列读取的访问权限,以便我们可以进行蓝绿色操作并且一次只能从队列中读取 1 个堆栈?

会有多个实例角色,并且部分激活将修改角色以授予从 SQS 工作读取的权限?有更好的解决方案吗?

4

1 回答 1

0

您可以为每个新部署创建 SQS 队列。但是 SNS 是静态的。

所以你有运行版本 v1。您有订阅“SNS”的 SNS 主题“SNS”和 SQS 队列“v1”。

然后,您使用新的 SQS“v2”部署了新版本。所以你必须订阅它到“SNS”。并从“SNS”退订“v1”。在此切换期间您可能会收到重复数据。我建议使用重复数据删除,例如 Elasticache

于 2018-11-14T19:40:57.303 回答