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

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

Для передачи сообщений в AWS необходим аккаунт

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

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

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

 


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

tmt_send-receive-async-messages_1a

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_1a

b. Если откроется целевая страница консоли SQS, как показано на снимке экрана, нажмите кнопку «Get Started Now» (Начать). Если эта страница не отображается, переходите к следующему шагу.

tmt_send-receive-async-messages_1b

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_1b

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

В данном примере использования моделируется хранение входящих заказов из приложения для интернет-коммерции.


a. Для начала мы создадим простую очередь, в которой хранятся заказы, оформленные в магазине. Введите имя «Orders» в поле «Queue Name» (Имя очереди).  

tmt_send-receive-async-messages_2a

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_2a

b. В этом руководстве не требуется строгая сортировка, поэтому мы не будем менять тип очереди. Оставьте выбранным тип «Standard Queue» (Стандартная очередь).

tmt_send-receive-async-messages_2b

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_2b

c. Очередь можно настраивать, меняя такие параметры, как срок хранения, максимальный размер сообщения и задержки доставки. Для этого руководства мы оставим параметры по умолчанию. Нажмите кнопку «Quick-Create Queue» (Быстро создать очередь).

tmt_send-receive-async-messages_2c

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_2c

d. Новая очередь создана и выбрана в списке.

tmt_send-receive-async-messages_2d

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_2d

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


a. Ваша очередь уже выбрана в списке. В меню «Queue Actions» (Действия с очередями) выберите пункт «Send a Message» (Отправить сообщение). Откроется диалоговое окно «Send a Message to Orders» (Отправка сообщения в очередь «Orders»).

tmt_send-receive-async-messages_3a

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_3a

b. Откроется диалоговое окно «Send a Message to Orders» (Отправка сообщения в очередь «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

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

tmt_send-receive-async-messages_3c

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_3c

d. Чтобы сразу отправить сообщение, нажмите кнопку «Send Message» (Отправить сообщение). В диалоговом окне «Send a Message to Orders» (Отправка сообщения в очередь «Orders») появится подтверждение отправки сообщения. Нажмите кнопку «Close» (Закрыть).

tmt_send-receive-async-messages_3d

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_3d

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


a. Убедитесь, что в списке очередей выбрана очередь «Orders» (Заказы). Затем в меню «Queue Actions» (Действия с очередями) выберите пункт «View/Delete Messages» (Просмотр и удаление сообщений).

tmt_send-receive-async-messages_4a

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_4a

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

Щелкните «Start Polling for messages» (Начать опрос на наличие сообщений), чтобы получить сообщения из очереди.  

tmt_send-receive-async-messages_4b

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_4b

c. Когда клиент получит и обработает сообщение, его можно удалить из очереди. Выберите сообщение, которое требуется удалить, а затем нажмите «Delete 1 Message» (Удалить 1 сообщение).

tmt_send-receive-async-messages_4c

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_4c

d. Откроется диалоговое окно «Delete Messages» (Удаление сообщений). Установите флажок рядом с сообщением и щелкните «Yes, Delete Checked Messages» (Да, удалить отмеченные сообщения). Выбранное сообщение будет удалено. Нажмите кнопку «Close» (Закрыть).

tmt_send-receive-async-messages_4d

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_4d

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


a. В списке очередей выберите «Orders» (Заказы). Затем в меню «Queue Actions» (Действия с очередями) выберите пункт «Delete Queue» (Удалить очередь).

tmt_send-receive-async-messages_5a

(Щелкните, чтобы увеличить изображение.)

tmt_send-receive-async-messages_5a

b. Откроется диалоговое окно «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 для разъединения и масштабирования приложений. Смотрите наш вебинар »

Да
Нет