Почему одно сообщение SQS не удаляется, в то время как другие удаляются? - PullRequest
1 голос
/ 02 декабря 2019

Я столкнулся с этим вопросом в своем исследовании AWS:

Вы создаете очередь SQS и решаете протестировать ее, создав простое приложение, которое ищет сообщения в очереди. При получении сообщения приложение должно удалить его. Вы создаете три тестовых сообщения в своей очереди SQS и обнаруживаете, что сообщения 1 и 3 быстро удаляются, но сообщение 2 остается в очереди. Какова возможная причина для такого поведения? Выберите 2 правильных ответа

Options:
A.  The order that messages are received in is not guaranteed in SQS
B.  Message 2 uses JSON formatting
C.  You failed to set the correct permissions on message 2
D.  Your application is using short polling 

Правильный ответ:

A. The order that messages are received in is not guaranteed in SQS
D. Your application is using short polling

Почему А здесь считается одним ответом? Я понимаю, что A является правильным из определения функции SQS, однако это не объясняет проблему в этом вопросе, верно? Почему это не проблема разрешения?

Что-то, чего мне не хватает?

Спасибо.

1 Ответ

1 голос
/ 02 декабря 2019

Я думаю, что обоснование для A & D:

  • Различные работники могут извлекать сообщения из очереди
  • Учитывая, что это не очередь FIFO, тогда порядок сообщений не гарантируется (A)
  • Короткий опрос не обязательно проверяет каждый «сервер», он просто возвращает сообщение (D)
  • Сообщение 2 простоеще не был обработан

Честно говоря, я не думаю, что D так важен, потому что Long Polling возвращается, как только получает сообщение, и это просто означает, что ни один работник не запросилсообщение еще не получено.

B не имеет значения, поскольку содержимое сообщения не влияет на поиск.

C неверно, поскольку нет никаких разрешений для отдельных сообщений. Только очередь или пользователи, обращающиеся к ней, имеют разрешения.

...