Лекція 15. Windows Azure Queue. Вступ. Модель даних. REST - інтерфейс
Загальна подання
Windows Azure Queue надає простий і надійні асинхронний механізм доставки повідомлень. Це дозволяє використовувати Queue сервіс як інструмент інтеграції між різних компонент "хмарного" рішення з додатками локальної архітектури. Azure Queue надає REST - інтерфейси, що дозволяють створювати додатки на різних мовах програмування, забезпечуючи розширюваність, інтеграцію і масштабованість створюваних рішень.
Сервісно - орієнтований додаток, побудоване з використанням Azure Queue матиме ряд переваг:
1. Можливість оцінки масштабованості на основі аналізу довжини черги. Довжина черги відображає, по суті, час затримки обробки. Якщо розмір черги малий, це означає що орендується більше ресурсів, ніж, можливо, необхідно в даному випадку. Навпаки, великий розмір черги свідчить про явну нестачу обчислювальних ресурсів і наявності витрат, пов'язаних із затримками в обробці даних.
2. Реалізація поділу ролей. Кожна частина програми може бути реалізована на основі більш придатної технології, без оглядки на технології інших компонент, оскільки повідомлення в черзі можуть бути як в стандартному, так і в XML - форматі.
3. Буферизація запитів. У моменти пікового навантаж, коли робочі ролі не справляються з усім кількістю, що надходять до них звернень, "зайві" звернення не відсіваються а залишаються в черзі. Крім того зменшується вплив збою окремих компонент на систему в цілому.
Модель даних
На рис 21.1 приведена структура даних Windows Azure Queue, отримана засобами MS SQL Server 2008.
Рис. 21.1.
Розглянемо модель даних Windows Azure Queue більш детально. Виділимо основні терміни:
• Обліковий запис. Будь-доступ до Windows Azure Storage і його сервісів, здійснюється за допомогою облікового запису. При цьому одна обліковий запис може мати кілька черг.
• Черга. Черга містить безліч повідомлень, при цьому:
o кількість повідомлень не обмежена
o повідомлення зберігається не довше одного тижня і видаляється після закінчення цього терміну в процесі "прибирання сміття"
o з чергами можуть бути асоційовані метадані виду "ім'я - значення" розміром до 8Кб
• Повідомлення. Зберігаються в чергах. Розмір кожного повідомлення обмежений 8Кб. При необхідності зберігання більшого обсягу даних, самі дані розміщуються в табличних або бінарних сховищах, а повідомлення зберігає ім'я бінарного об'єкта, або сутності.
Рис. 21.2. Архітектура Queue сервісу Windows Azure
Параметри AzureQueue Services:
MessageID - ідентифікатор повідомлення в черзі
VisibilityTimeout - значення часу очікування видимості повідомлення, тобто через який проміжок часу створене повідомлення "побачать". До 2 годин, значення за замовчуванням - 30 секунд
PopReceipt -возвращаемая рядок для кожного повідомлення, поряд з MessageID необхідна для видалення рядка з черги
MessageTTL - термін життя повідомлення в сеундах.
REST - інтерфейс
Будь-доступ до Windows Azure Queue здійснюється через HTTP - інтерфейс REST.
До операцій HTTP \ REST на рівні черг і повідомлень відносяться:
Таблиця 21.1. Queue - операції | ||
Операції | 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
1. http://msdn.microsoft.com/ru-ru/library/ee872424.aspx
Windows Azure Worker Role і Windows Azure Queue Service
1. http://social.technet.microsoft.com/wiki/contents/articles/windows-azure-and-sql-azure-tutorials-tutorial-4-using-windows-azure-worker-role-and-windows- azure-queue-service.aspx
REST - операції
1. http://msdn.microsoft.com/en-us/library/dd179363.aspx
Обмін повідомленнями
1. http://www.oszone.net/13891/Windows-Azure-Storage
Огляд Windows Azure Table і Windows Azure Queue (відео)
1. http://www.microsoftpdc.com/2009/SVC09
(Для ознайомлення з повним текстом статті необхідно залогінитись)