Назад | Перейти на главную страницу

AWS SNS с надежностью подписчиков SQS

В Документация SNS: часто задаваемые вопросы говорит:

SNS обеспечивает надежное хранение всех получаемых сообщений. После получения запроса на публикацию SNS сохраняет несколько копий (на диск) сообщения в нескольких зонах доступности перед тем, как подтвердить получение запроса отправителю. В каждом регионе AWS есть несколько изолированных местоположений, известных как зоны доступности. Если сбой в одной зоне случается редко, работа SNS и надежность ваших сообщений продолжаются без сбоев.

И

Если критически важно, чтобы все опубликованные сообщения были успешно обработаны, разработчики должны иметь уведомления, доставляемые в очередь SQS (в дополнение к уведомлениям через другие транспорты).

Мне было любопытно на теоретическом уровне, знает ли кто-нибудь какие-либо условия, которые могут привести к «потере» сообщения, опубликованного и принятого SNS, особенно при использовании потребителя SQS, т.е. сообщение никогда не доставляется подписчику SQS.

Также из SNS FAQ:

SQS: Если очередь SQS недоступна, SNS будет повторять 10 раз сразу, затем 100 000 раз каждые 20 секунд, всего 100 010 попыток в течение более 23 дней, прежде чем сообщение будет отклонено из SNS.

Поэтому я бы предложил три основных сценария потери сообщения при использовании потребителя SQS:

  1. Постоянная недоступность SQS - более 23 дней
  2. Исключительная программная ошибка в самом SNS или в базовой технологии хранения, которая удаляет или иным образом теряет сообщение
  3. Катастрофический отказ региона, при котором происходит одновременная окончательная потеря всех базовых систем хранения, используемых этим экземпляром SNS - вероятно, только крупная крупномасштабная катастрофа, затрагивающая всю географию, например, землетрясение, наводнение, крупный метеорит, значительное взрывное событие