Работа с Amazon SQS & SNS в Java

Впервые я столкнулся с Amazon SQS и Amazon SNS. Я буду работать с ними на моем рабочем месте в Java.

У меня есть несколько вопросов по этому поводу,

  1. Я не обладаю таким большим знанием Java, я не могу сказать, что я продвинулся так далеко, но да, я могу сказать, что у меня есть промежуточные знания. Так можно ли мне трогать эти области?

  2. Что это за услуги и чем они полезны? Пример из реального мира будет полезен.

Любые предложения или комментарии будут полезны.

2 ответа

Решение

Я бы не сказал, что вам нужны продвинутые знания Java для их использования, но почему бы не попробовать и судить самим? AWS SDK для Java доступен по адресу http://aws.amazon.com/sdkforjava/

На http://aws.amazon.com/sns/ и http://aws.amazon.com/sqs/ вводная информация, а также ссылки на подробную документацию.

SQS полезен, когда вам нужно отправить надежные асинхронные сообщения между частями системы через Интернет. Это экономит ваши усилия и затраты на настройку собственной надежной службы обмена сообщениями и обеспечивает масштабируемость. Это полезно, когда сообщения не должны приходить мгновенно, но не должны пропадать. Биллинг (записи о продажах) и другие не срочные финансовые операции были бы примером. Обратите внимание, что SQS обеспечивает поведение "хотя бы один раз" - в редких случаях оно может доставлять сообщение более одного раза.

SNS - публикация-подписка, а не на основе очереди; это более удобный стиль обмена сообщениями с использованием тем и подписок, а не простых очередей. Этот стиль полезен, когда производитель информации может не знать всех потенциальных потребителей информации и их точных потребностей. См. Примеры приложений в FAQ на http://aws.amazon.com/sns/faqs/

Они должны использоваться для поддержки надежной связи между вашими программными компонентами. Я думаю, что главный вопрос здесь заключается в том, почему вы должны разделить свои сервисы на несколько компонентов / уровней.

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

  • длительный процесс, который может повлиять на скорость отклика в Интернете: наиболее распространенным примером является обработка заказов, когда оплата с помощью платежа / кредитной карты может быть немного медленной, вы создаете одну службу, которая дает пользователю быстрый ответ, а затем отправляет сообщение в очередь SQS, который запускает компонент backoffice, который выполняет всю тяжелую работу;

  • различные профили масштабируемости: типичным примером может служить веб-приложение, в которое вы загружаете видео и кодируете его на несколько платформ; вам может потребоваться создать разные группы автоматического масштабирования с различными компонентами, загрузкой / просмотром видео (на многих серверах) и кодированием видео с меньшим количеством серверов, но с более высокая емкость, использование будет аналогично предыдущему примеру.

  • инициировать выполнение параллельных действий: после обработки заказа вы должны отправить электронное письмо своему клиенту, уведомить склад для подготовки таможни к доставке, сообщить транспортной службе, чтобы забрать товары на складе и доставить по адресу клиента, затем вы следует использовать тему SNS, где вы публикуете бизнес-событие и слушаете 3 компонента, которые выполняют следующее:

    1. Форматирование и отправка почты
    2. Складской сервисный вызов
    3. Транспортная служба вызова

Может быть много других сценариев использования, если вы скажете, что должно делать ваше решение, возможно, мы могли бы помочь более точно.

Другие вопросы по тегам