AWS SNS с долговечностью абонента SQS

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

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

А также

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

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

1 ответ

Решение

Также из SNS FAQ:

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

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

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