Удаляется ли раздел SNS, даже если на него не подписан пользователь?

#amazon-web-services #amazon-sqs #amazon-sns

#amazon-web-services #amazon-sqs #amazon-sns

Вопрос:

Я хочу сравнить SNS с SQS в отношении удаления из очереди / использования сообщения / темы.

Удаляется ли раздел SNS из очереди / используется, если активен более 1 пользователя? Не выводится ли раздел SNS из очереди, если пользователь не активен? Под потребителем я подразумеваю любую конечную точку http, lambda и т.д.

Ответ №1:

Я полагаю, вы имели в виду сообщение, опубликованное в разделе SNS.

В часто задаваемых вопросах Amazon SNS есть ответ на ваш вопрос.

Вопрос: Что происходит с сообщениями Amazon SNS, если конечная точка подписки недоступна?

Если сообщение не может быть успешно доставлено с первой попытки, Amazon SNS выполняет политику повторных попыток, состоящую из 4 этапов: 1) повторные попытки без задержек между попытками, 2) повторные попытки с минимальной задержкой между попытками, 3) повторные попытки в соответствии с моделью отсрочки и 4) повторные попытки с максимальной задержкой между попытками. Когда политика повторных попыток доставки сообщений исчерпана, Amazon SNS может переместить сообщение в очередь просроченных писем (DLQ). Дополнительные сведения см. в разделе Попытки доставки сообщений и очереди просроченных писем Amazon SNS.

Ответ №2:

Я не совсем уверен, получил ли ваш вопрос.

Если вы спрашиваете о процессе удаления из очереди для очередей, которые подписаны на раздел SNS; SNS не играет никакой роли, как только элементы [сообщения] передаются подписчикам.

SNS не сохраняет элементы / кэширует сам по себе, он пытается передать элементы темы своему подписчику lambda или sqs или по электронной почте и т.д.

Пожалуйста, отредактируйте свой вопрос, чтобы он был более четким, чтобы получить лучшие ответы.

Комментарии:

1. Да, я хотел знать, сохраняет ли SNS сообщение, если нет пользователя.

2. SNS этого не делает. Вы можете собирать элементы, отправленные SNS по очереди SQS, а затем принимать решение позже.

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

4. Но я думаю, что установка очень большого TTL — это один из способов его кэширования.

5. @Hexy, нет. У тем нет потребителей, у них есть подписчики. Если вы подпишетесь на газету завтра, вы никогда не получите сегодняшний выпуск, потому что вы не были подписчиком, когда она была опубликована. То же самое верно и для SNS. Сообщения, отправленные в тему с 0 подписчиками, немедленно удаляются.