#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 подписчиками, немедленно удаляются.