我们正在为我们的一个应用程序评估Amazon SQS。我们将在SQS中保存一些消息,每天最多持续10个小时(我们的一个“消费者”只能在上午7点到晚上9点之间处理)。
持久化消息似乎分布在同一地理区域的多个可用区中。有没有办法在SQS中实现跨地域复制?我读了亚马逊关于灾难恢复的白皮书,里面没有提到SQS。
发布于 2015-08-26 19:53:06
您可以做的是,每次写入您所在区域的SQS时,您也会写入另一个区域的SQS。以下是我的建议:
SNS您必须以编程方式完成此操作,根据您的要求,您可能必须实现一个两阶段的commit.
请记住,AWS可用区实际上已经在地理上分布,我相信彼此之间大约有50英里的距离。
如果这是我的项目,我会遵循选项2。
基本上,您所做的不是直接发布到SQS,而是在每个区域中创建一个SNS主题。这些主题中的每一个都在这两个地区都有SQS订阅。
当消息发布到任一地域的SNS时,SNS将自动发布到两个SQS订阅。
发布于 2015-08-25 08:49:46
每个SQS队列当前被限制到单个区域。不过,每个SQS队列都是跨多个可用区复制的。
发布于 2021-01-07 15:46:00
SQS在多个可用区之间冗余地复制。
我能找到的唯一证据是:https://aws.amazon.com/sqs/faqs/#Security_and_reliability
冗余可用区( AZ ),因此任何一台计算机、网络或AZ故障都不会使消息无法访问
关键部分是“多余的AZs”。我觉得"make messages“是模棱两可的(它们是指任何消息还是所有消息?)但这句话的其余部分解决了这个问题。
关于跨地域桥接,SQS不允许:
Q:可以在不同地域的队列之间共享消息吗?
不是的。每个Amazon SQS消息队列在每个区域内都是独立的。
https://aws.amazon.com/sqs/faqs/#Service_access_and_regions
但是,Amazon MQ确实允许跨区域的消息传播:
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/network-of-brokers.html
https://stackoverflow.com/questions/32192601
复制相似问题