#amazon-web-services #amazon-sqs #distributed-computing
#amazon-веб-сервисы #amazon-sqs #распределенные вычисления
Вопрос:
Поскольку SQS является распределенной очередью, реплицирует ли он сообщения в том же регионе или в другом регионе? Рассматривая архитектуру в документах AWS, она показывает, что сообщение реплицируется, но реплицируется ли оно в том же регионе или в разных регионах?
Пример использования:
Я настраиваю очередь в регионе X
, но к ней можно получить доступ в регионе на другом конце света. Итак, если есть два работника, один из которых работает в регионе X
, а другой в регионе Y
, получают ли оба данные из одной и той же X
очереди регионов или это может быть регион X
, а регион Y
получает данные из ближайшего к ним региона.
Например X
, получил сообщение из региона X
, и до того, как эта информация попадет Y
в очередь обновления региона, другой работник возьмет из реплицированной Y
очереди региона и прочитает то же сообщение.
P.S: — Я знаю SQS, по крайней мере, в семантике once. Но я хочу знать семантику в приведенном выше примере использования.
Ответ №1:
SQS — это региональный сервис, который высокодоступен в пределах одного региона. Возможности межрегиональной репликации отсутствуют. Вы определенно можете получить доступ к очереди из разных регионов, просто инициализируйте sqs
клиент с правильным регионом назначения.
Ответ №2:
Как стандартная практика для служб AWS, данные хранятся в регионе, в котором вы создаете службу.
Существуют исключения, но для их разрешения вам как пользователю потребуется выполнить действие, например, скопировать AMI или включить репликацию S3.
Если очередь используется в нескольких регионах, она всегда будет обращаться к региональной конечной точке очереди SQS, а не к конечной точке текущего региона.
Поскольку SQS — это служба очередей, если у вас есть работники, распределенные по регионам, существует вероятность того, что элемент удаляется из очереди и обрабатывается в одном регионе (хотя точное определение будет заключаться в том, что он доставляется хотя бы один раз).
Если вы пытаетесь использовать сообщение в нескольких регионах, было бы лучше рассмотреть подход, основанный на разветвлении, при котором работники каждого региона будут использовать свою очередь SQS, а не использовать ее совместно.
Для получения дополнительной информации ознакомьтесь с https://aws.amazon.com/getting-started/hands-on/send-fanout-event-notifications / документация.