如何设置AWS SNS和SQS以实现高可用性?

编程入门 行业动态 更新时间:2024-10-10 06:17:16
本文介绍了如何设置AWS SNS和SQS以实现高可用性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 SNS问题 我目前正在为SNS使用pythonboto3库(例如,创建主题、订阅主题、发送SNS到主题)。当我使用Resource或Client时,我必须指定一个区域(例如‘us-west-2’、‘us-East-1’)。我没有看到任何用于处理区域故障转移的内置选项。我的问题是,您如何设置AWS SNS和SQS以实现高可用性/区域故障转移?

import boto3 client = boto3.client('sns', region_name='us-west-2') response = client.create_topic(Name='my_new_topic') client.subscribe(TopicArn='arn:aws:sns:us-west-2:123456789:some-topic', Protocol='HTTP', Endpoint='Some-HTTP-Endpoint') 关于SNS解决方案的思考

我想检查一下客户的反应。例如,下面是成功的client.create_topic()的响应。

{'ResponseMetadata': {'HTTPStatusCode': 200, 'RequestId': 'adbb58ef-9047-5d44-834d-04a41599eb2b'}, u'TopicArn': 'arn:aws:sns:us-west-2:123456789:some-topic'}

如果请求不成功,我可以重试X次,然后再尝试新的region_name,但此方法似乎非常麻烦(因为它总是尝试先尝试关闭的区域,并且需要不断切换到新客户端)。

SQS问题

如果上述操作成功(我们可以跨区域处理SNS),现在我将需要读取多个SQS队列(同样使用似乎是循环遍历不同区域的客户端的老套解决方案)。

推荐答案

Amazon SNS和SQS是地区性服务。它们没有内置的多地域可用性方法。如果某个区域出现故障,并且您无法访问您的主题或队列,则无法使用其他区域访问这些相同的主题/队列。

也没有任何以多区域方式处理它们的标准方法。这实际上取决于您的应用程序的工作方式。

一种方法:

  • 写入者-写入一个区域,如果失败,请写入另一个区域。
  • 读取器-从多个区域的多个队列读取。

另一种方法:

  • 写入者-写入多个主题/队列,确保邮件到达某个位置。
  • 读取器-从多个队列读取,平等对待所有队列,您将需要管理邮件重复。

更多推荐

如何设置AWS SNS和SQS以实现高可用性?

本文发布于:2023-11-23 23:16:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1623139.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:可用性   如何设置   SNS   AWS   SQS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!