Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services SQS队列的弹性_Amazon Web Services_Aws Lambda_Amazon Sqs - Fatal编程技术网

Amazon web services SQS队列的弹性

Amazon web services SQS队列的弹性,amazon-web-services,aws-lambda,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Sqs,我们正在尝试为SQS队列开发一个实时DR模型 我们在AWS有两个不同的账户: 欧盟西部(账号1234) 美国东部(账号:4567) 我们的应用程序驻留在两个帐户中(主动-被动) 在正常情况下,欧盟-西方处于活跃状态,而美国-东方处于不活跃状态 当我们为灾难恢复进行故障切换时,US-EAST将处于活动状态,EU-WEST将处于非活动状态 我们希望每个帐户中有两个SQS队列(欧盟西部,美国东部) 当EU-WEST处于活动状态时,我们只希望在EU-WEST工作和处理事件中使用SQS队列 当我们切换到

我们正在尝试为SQS队列开发一个实时DR模型

我们在AWS有两个不同的账户:

  • 欧盟西部(账号1234)
  • 美国东部(账号:4567)
  • 我们的应用程序驻留在两个帐户中(主动-被动)

    • 在正常情况下,欧盟-西方处于活跃状态,而美国-东方处于不活跃状态
    • 当我们为灾难恢复进行故障切换时,US-EAST将处于活动状态,EU-WEST将处于非活动状态
    • 我们希望每个帐户中有两个SQS队列(欧盟西部,美国东部)
    • 当EU-WEST处于活动状态时,我们只希望在EU-WEST工作和处理事件中使用SQS队列
    • 当我们切换到DR时,我们希望使欧盟西部的SQS处于非活动状态,并使美国东部的SQS处于活动状态
    每个SQS上都有一个Lambda触发器

    我们在这里可能面临的问题是:两个SQS队列都将处理事件,因为它订阅了相同的SNS主题。由于它连接到Lambda函数,所以两者都将处理事件

    我不想发生这种事。我希望一次只使用一对SQS和Lambda函数—EU-WEST或US-EAST。我知道这可以通过移除非活动区域上的Lambda触发器来实现

    只是在寻找更好的方法。

    我在这里找到了一个解决方案

    我们需要检查路由53以查找应用程序的当前活动区域。 在DR区域,当我们在SQS上收到消息时,它将触发lambda。lambda基于route53或ALB dns检查活动区域。如果它发现该区域不是活动/活动的,它将跳过消息的处理,因此SQS队列将在DR上清除

    因此,live region Lambda将积极处理SQS消息,而DR one将跳过所有处理

    这个想法应该适用于我上面提到的场景。

    我在这里找到了一个解决方案

    我们需要检查路由53以查找应用程序的当前活动区域。 在DR区域,当我们在SQS上收到消息时,它将触发lambda。lambda基于route53或ALB dns检查活动区域。如果它发现该区域不是活动/活动的,它将跳过消息的处理,因此SQS队列将在DR上清除

    因此,live region Lambda将积极处理SQS消息,而DR one将跳过所有处理


    这个想法应该适用于我上面提到的场景。

    旁注:Amazon SQS和AWS Lambda是跨多个可用性区域运行的区域服务。为实现高可用性,通常建议跨多个AZ运行或使用区域服务。因此,您的解决方案已经高度可用,但当然也欢迎您采用多区域方法。“两个SQS队列都将处理事件,因为它连接到同一个源。”SQS队列不连接到“源”,生产商连接到队列。。。那么这是什么意思呢?抱歉搞混了。两个SQS都订阅相同的SNS。旁注:Amazon SQS和AWS Lambda是跨多个可用性区域运行的区域服务。为实现高可用性,通常建议跨多个AZ运行或使用区域服务。因此,您的解决方案已经高度可用,但当然也欢迎您采用多区域方法。“两个SQS队列都将处理事件,因为它连接到同一个源。”SQS队列不连接到“源”,生产商连接到队列。。。那么这是什么意思呢?抱歉搞混了。两个SQ订阅相同的SNS。