Как заставить сообщения Amazon sqs придерживаться FIFO
Есть какой-нибудь способ, который можно использовать, чтобы потреблять сообщения ЗК Amazon в настоящий ФИФО? Я попытался задержать доставку сообщений из конфигурации, но это не помогло.
3 ответа:
Amazon SQS только что получил очереди FIFO с обработкой и дедупликацией ровно один раз:
Сегодня мы делаем SQS еще более мощными и гибкими с поддержкой для очередей FIFO (first-in, first-out). мы разворачиваем этот новый тип очереди в двух регионах теперь , и планируют сделать его доступным в многие другие в начале 2017 года.
Эти очереди предназначены для того, чтобы гарантировать обработку сообщений. ровно один раз, в том порядке, в котором они есть. отправлено, причем без дубликатов . [...]
[Курсив мой]
Как было подчеркнуто, эти новые очереди FIFO SQS сделают любые специальные соображения для использования сообщений Amazon SQS в true FIFO ненужными, но пока не доступны во всех регионах SQS [первоначально только в восточной части США (Огайо) и западной части США (Орегон)].
Короче говоря, нет:
Вопрос: обеспечивает ли Amazon SQS доступ к сообщениям по принципу "первый вход-первый выход" (FIFO)?
Нет, Amazon SQS не гарантирует FIFO доступ к сообщениям в очередях Amazon SQS, главным образом из-за распределенного характера Amazon SQS. Если вам требуется определенный порядок сообщений, вы должны разработать приложение для его обработки.
Сообщения, которые должны поступать в определенном порядке, могут не подходить для стандартной очереди
SQS
. Однако вы можете установить счетчик последовательности сообщений при отправке сообщения. На приемном конце вы можете продолжать обрабатывать сообщения, если последовательность правильная. В случае, если приходит сообщение из последовательности, подождите, пока не придет правильное сообщение, а затем обработайте правильное сообщение последовательности и другие, которые пришли между ними.17 ноября 2016 года очередь FIFO была введена в некоторые области (
US East (Ohio)
иUS West (Oregon)
), которые дополняют стандартную очередь. Порядок отправки и получения сообщений строго сохраняется, сообщение доставляется один раз и остается доступным до тех пор, пока потребитель не обработает и не удалит его; дубликаты не вводятся в очередь. Очереди FIFO используют те же действия API, что и стандартные очереди, а механика получения и удаления сообщений и изменения времени ожидания видимости одинакова. Однако при отправке сообщений необходимо указать идентификатор группы сообщений. Введите описание изображения здесь