В этом учебном пособии вы узнаете, как настроить асинхронную передачу сообщений с помощью Amazon Simple Queue Service (Amazon SQS). Amazon SQS – это сервис AWS, который позволяет компонентам приложений взаимодействовать в облаке. Для создания и настройки очереди сообщений, отправки сообщения, его получения, удаления и последующего удаления самой очереди вы примените консоль Amazon SQS.

Все сервисы AWS, которые используются в этом учебном пособии, входят в уровень бесплатного пользования AWS.

Для отправки сообщений нужен аккаунт AWS.

Создать бесплатный аккаунт

Уровень бесплатного пользования AWS включает 1 000 000 запросов к Amazon Simple Queue Service (SQS).

Подробнее об уровне бесплатного пользования AWS »

 


а) Щелкните здесь, и в новом окне браузера откроется Консоль управления AWS. При этом руководство останется открытым.  Когда стартовый экран загрузится, введите имя пользователя и пароль, чтобы начать работу. Затем наберите в поисковой строке queue и выберите Simple Queue Service, чтобы открыть консоль.

tmt_send-receive-async-messages_1a

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_1a

б)  Если откроется стартовая страница консоли SQS, которая представлена на этом снимке экрана, щелкните Get Started Now. Если вы не видите эту страницу, сразу переходите к следующему шагу.

tmt_send-receive-async-messages_1b

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_1b

На этом этапе мы создадим и настроим очередь Amazon SQS. Очередь представляет собой надежный и хорошо масштабируемый буфер для хранения сообщений во время их передачи между приложениями или микросервисами. Очереди помогают изолировать приложения, организовать взаимодействие микросервисов, объединять задачи и хранить оповещения.

В этом учебном пособии мы смоделируем хранение заказов, поступающих от приложения электронной коммерции.


а) Для начала мы создадим простую очередь, которая сохраняет заказы, размещенные в магазине. Введите значение Orders в поле Queue Name .  

tmt_send-receive-async-messages_2a

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_2a

б) Для целей этого учебного пособия мы не требуем строгого оформления заказов, поэтому не придется изменять тип очереди. Сохраните вариант Standard Queue.  

tmt_send-receive-async-messages_2b

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_2b

в) Вы можете настроить для очереди такие параметры, как период хранения, максимальное количество сообщений и задержки доставки. В нашем примере сохраняются все значения по умолчанию. Выберите пункт Quick-Create Queue, чтобы быстро создать очередь.

tmt_send-receive-async-messages_2c

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_2c

г) Только что созданная очередь будет выделена в списке очередей.

tmt_send-receive-async-messages_2d

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_2d

После создания очереди в нее можно отправлять сообщения из онлайн-магазина, который собирает сведения о новых заказах.


а)  Нужная очередь уже выделена в списке. В меню Queue Actions выберите действие Send a Message, чтобы отправить сообщение. При этом отобразится диалоговое окно Send a Message to Orders.

tmt_send-receive-async-messages_3a

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_3a

б) При этом отобразится диалоговое окно Send a Message to Orders. На вкладке «Message Body» введите следующий текст, который моделирует пример заказа:

1 x Widget @ $29.99 USD
2 x Widget Cables @ $4.99

tmt_send-receive-async-messages_3b

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_3b

в) Выберите вкладку Message Attributes и добавьте необязательные метаданные о сообщении, чтобы упростить его обработку. Давайте укажем, например, тип заказа. Введите строку Order-Type в поле Name, затем String в поле Type и Online в поле Value. Щелкните Add Attribute.

tmt_send-receive-async-messages_3c

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_3c

г) Для немедленной отправки сообщения нажмите Send Message. В диалоговом окне Send a Message to Orders появится подтверждение отправки вашего сообщения. Щелкните Close.

tmt_send-receive-async-messages_3d

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_3d

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


а) Убедитесь, что очередь Orders выделена в списке очередей. Теперь в меню Queue Actions выберите действие View/Delete Messages.

tmt_send-receive-async-messages_4a

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_4a

б) Отобразится диалоговое окно View/Delete Messages in Orders. При извлечении сообщения из очереди вам не нужно указывать конкретное сообщение. Вместо этого вы задаете максимальное число извлекаемых сообщений (не более 10).

Щелкните Start Polling for messages, чтобы извлечь сообщения из очереди.  

tmt_send-receive-async-messages_4b

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_4b

в) Когда потребитель получит и обработает сообщение, он может удалить это сообщение из очереди. Выберите сообщение, которое вы хотите удалить, и щелкните Delete 1 Message.

tmt_send-receive-async-messages_4c

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_4c

г) Отобразится диалоговое окно Delete Messages. Установите флажок рядом с сообщением и щелкните Yes, Delete Checked Messages. Выбранное сообщение удаляется. Выберите Close.

tmt_send-receive-async-messages_4d

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_4d

Когда вы завершите работу с очередью Amazon SQS, мы рекомендуем удалить ее.


а) В списке очередей выберите очередь Orders . Теперь в меню Queue Actions выберите действие Delete Queue.

tmt_send-receive-async-messages_5a

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_5a

б) Отобразится диалоговое окно Delete Queues. Вы можете спокойно удалять очередь, даже если в ней еще остались сообщения. Выберите Yes, Delete Queue. Очередь удаляется.

tmt_send-receive-async-messages_5b

(Нажмите, чтобы увеличить.)

tmt_send-receive-async-messages_5b

Вы создали первую очередь сообщений в Amazon Simple Queue Service (Amazon SQS), отправили в нее сообщения, затем получили и удалили эти сообщения, и наконец удалили очередь. Теперь вы умеете применять очереди Amazon SQS для хранения данных и их перемещения между компонентами распределенных приложений и микросервисами.

Теперь вы знаете, как отправлять и получать сообщения в сервисе Amazon Simple Queue Service, и можете выбрать любое из следующих направлений для развития новых навыков.

Подробнее

Ознакомьтесь с обзором возможностей, компонентов и примеров использования для очередей сообщений в Amazon Web Services (AWS).

Посетите веб-страницу Amazon SQS »

Больше информации

Изучите разные типы очередей, основные возможности и архитектуру Amazon Simple Queue Service.

Ознакомиться с документацией »

Решение в действии

Послушайте, как Capital One и другие клиенты используют Amazon SQS и Amazon SNS для изоляции и масштабирования приложений.

Смотреть вебинар »

Да
Нет