Windows Azure Queue. Введение. Модель данных. REST - интерфейс
Общее представлениe
Windows Azure Queue предоставляет простой и надежные асинхронный механизм доставки сообщений. Это позволяет использовать Queue сервис в качестве инструмента интеграции между различных компонент "облачного" решения с приложениями локальной архитектуры. Azure Queue предоставляет REST - интерфейсы, позволяющие создавать приложения на различных языках программирования, обеспечивая расширяемость, интеграцию и масштабируемость создаваемых решений.
Сервисно - ориентированное приложение, построенное с использованием Azure Queue будет обладать рядом преимуществ:
- Возможность оценки масштабируемости на основе анализа длины очереди. Длина очереди отражает, по сути, время задержки обработки. Если размер очереди мал, это означает что арендуется больше ресурсов, чем, возможно, необходимо в данном случае. Напротив, большой размер очереди свидетельствует о явной нехватке вычислительных ресурсов и наличии издержек, связанных с задержками в обработке данных.
- Реализация разделения ролей. Каждая часть приложения может быть реализована на основе более подходящей технологии, без оглядки на технологии остальных компонент, поскольку сообщения в очереди могут быть как в стандартном, так и в XML - формате.
- Буферизация запросов. В моменты пиковой нагрузи, когда рабочие роли не справляются со всем количеством, поступающих к ним обращений, "лишние" обращения не отсеиваются а остаются в очереди. Кроме того уменьшается влияние сбоя отдельных компонент на систему в целом.
Модель данных
На рис 21.1 приведена структура данных Windows Azure Queue, полученная средствами MS SQL Server 2008.
Рассмотрим модель данных Windows Azure Queue более детально. Выделим основные термины:
- Учетная запись. Любой доступ к Windows Azure Storage и его сервисам, осуществляется посредством учетной записи. При этом одна учетная запись может иметь несколько очередей.
- Очередь. Очередь содержит множество сообщений, при этом:
- количество сообщений не ограничено
- сообщение хранится не дольше одной недели и удаляется по истечении этого срока в процессе "сборка мусора"
- с очередями могут быть ассоциированы метаданные вида " имя - значение" размером до 8Кб
- Сообщения. Хранятся в очередях. Размер каждого сообщения ограничен 8Кб. При необходимости хранения большего объема данных, сами данные размещаются в табличных или бинарных хранилищах, а сообщение хранит имя бинарного объекта, или сущности.
Параметры AzureQueue Services:
MessageID - идентификатор сообщения в очереди
VisibilityTimeout - значение времени ожидания видимости сообщения, т.е. через какой промежуток времени созданное сообщение " увидят". До 2 часов, значение по умолчанию - 30 секунд
PopReceipt -возвращаемая строка для каждого сообщения, наряду с MessageID необходима для удаления строки из очереди
MessageTTL - срок жизни сообщения в сеундах.
REST - интерфейс
Любой доступ к Windows Azure Queue осуществляется через HTTP - интерфейс REST.
К операциям HTTP\REST на уровне очередей и сообщений относятся:
Операции | HTTP метод | Описание |
---|---|---|
List Queues | GET | Выводит список очередей учетной записи |
Create Queue | PUT | Создает новую очередь в рамках текущей учетной записи |
Delete queue | DELETE | Удаляет очередь |
Get Queue Metadata | GET/HEAD | Возвращает свойства очереди, включая определенные пользователем метаданные |
Set Queue Metadata | PUT | Задает определенные пользователем метаданные очереди |
Put Message | POST | Добавляет сообщение в очередь |
Get Messages | GET | Извлекает сообщение из очереди и делает его невидимым для остальных клиентов |
Peek Messages | GET | Извлекает сообщение из начала очереди без изменения visibility сообщения |
Delete Message | DELETE | Удаляет определенное сообщение из очереди |
Clear Messages | DELETE | Удалить все сообщения из очереди |
Операции с очередями осуществляются при помощи следующего URL: http://<account>. queue .core.windows.net/<QueueName>
Операции с сообщениями осуществляются при помощи следующего URL: http://<account>. queue.core.windows.net/<QueueName>/messages
где <account> - имя учетной записи, а <QueueName> - имя очереди.
Список дополнительных материалов для самостоятельного изучения
Windows Azure Queue
Windows Azure Worker Role и Windows Azure Queue Service
REST - операции
Обмен сообщениями
Обзор Windows Azure Table и Windows Azure Queue (видео)