- PVSM.RU - https://www.pvsm.ru -
В этой статье анализируются сходства и различия между двумя типами очередей, доступных в современной платформе Windows Azure: очереди Windows Azure и очереди шины обслуживания Windows Azure. Опираясь на эту информацию, вы сможете выделить сходства и различия соответствующих технологий и выбрать решение, наилучшим образом удовлетворяющее ваши потребности.
Windows Azure поддерживает два типа механизмов очередей: очереди Windows Azure и очереди шины обслуживания.
Очереди Windows Azure, входящие в состав инфраструктуры хранилища Windows Azure [2], поддерживают простой REST-интерфейс с функциями Get/Put/Peek (Получение/Запись/Считывание) для создания надежной и отказоустойчивой системы обмена сообщениями между службами и внутри них.
Очереди шины обслуживания входят в состав более обширной инфраструктуры обмена сообщениями Windows Azure [3], которая поддерживает создание очередей, а также публикацию, подписку, удаленную работу с веб-службами и шаблоны интеграции.
Обе технологии организации очередей существуют параллельно, однако очереди Windows Azure появились раньше. Эта надстройка для служб хранилища Windows Azure представляет собой специализированный механизм работы с хранилищами данных с помощью очередей. Очереди шины обслуживания представлены в новейшем выпуске шины обслуживания. Они являются надстройкой более обширной инфраструктуры обмена промежуточными сообщениями. Эта инфраструктура разработана для интеграции приложений или компонентов приложений, которые могут использовать несколько различных протоколов обмена сообщениями, контрактов данных, доверенных доменов и сетевых сред.
В этой статье приводится сравнительный анализ двух технологий организации очередей, реализованных в Windows Azure. Обсуждаются режимы работы и функциональные возможности обеих технологий. В статье также приводятся рекомендации по выбору функций, наилучшим образом подходящих для решения ваших задач, связанных с разработкой приложений.
Очереди Windows Azure и очереди шины обслуживания представляют собой реализацию службы очередей сообщений, которая в настоящее время доступна в Windows Azure. Эти технологии обладают различными наборами функций. Вы можете выбрать любую из них или обе сразу, в зависимости от своих потребностей или решаемой задачи (технической или коммерческой).
При выборе технологии организации очередей для конкретного решения его архитекторы и разработчики должны учитывать приведенные ниже рекомендации. Дополнительные сведения приведены в следующем разделе.
Архитекторам или разработчикам решения необходимо рассмотреть возможность использования очередей Windows Azure в следующих случаях.
Архитекторам или разработчикам решения необходимо рассмотреть возможность использования очередей шины обслуживания Windows Azure в следующих случаях.
Таблицы, приведенные в следующих разделах, содержат логически сгруппированные функции очередей. Эти таблицы наглядно демонстрируют различие возможностей очередей Windows Azure и очередей шины обслуживания.
В этом разделе приводится сравнительный анализ основных функций очередей Windows Azure Queues и очередей шины обслуживания.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Гарантия упорядочивания | Нет | Да — режим «первым вошел, первым вышел» (FIFO)
(с помощью использования сеансов обмена сообщениями) |
Гарантия доставки | At-Least-Once (Минимум однажды) | At-Least-Once (Минимум однажды)
At-Most-Once (Максимум однажды) |
Поддержка транзакций | Нет | Да
(с помощью локальных транзакций) |
Реакция на получение | Неблокирующий
(завершается немедленно, если новые сообщения не найдены) |
Блокирующий (со временем ожидания и без него)
(поддержка длинных интервалов опроса или метода на основе долгоживущих HTTP-соединений [4]) Неблокирующий (только с применением API, управляемого платформой .NET) |
Режим получения | Считывание и аренда | Считывание и блокировка
Получение и удаление |
Эксклюзивный режим доступа | На основе аренды | На основе блокировки |
Длительность аренды и блокировки | 30 секунд (по умолчанию)
7 дней (максимум) |
60 секунд (по умолчанию)
5 минут (максимум) |
Детализация аренды/блокировки | Уровень сообщений
(каждое сообщение может иметь собственное значение времени ожидания) |
Уровень очереди
(каждая очередь имеет собственную детализацию блокировки, действующую для всех сообщений и зафиксированную на весь период жизни очереди) |
Пакетное получение | Да
(явное указание количества сообщений при получении, не более 32 сообщений) |
Да
(включение предварительной выборки неявным образом (с помощью параметра) или явным образом (с помощью транзакций)) |
Пакетная отправка | Нет | Да
(с помощью транзакций или пакетной отправки со стороны клиента) |
В этом разделе приводится сравнительный анализ расширенных возможностей очередей Windows Azure и очередей шины обслуживания.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Доставка по расписанию | Да | Да |
Автоматическая маркировка удаляемых сообщений | Нет | Да |
Отсроченная передача сообщений | Да
(с помощью обновления на месте времени ожидания видимости) |
Да
(с помощью специализированной функции API) |
Поддержка сообщений о сбое | Да | Да |
Обновление на месте | Да | Нет |
Журнал транзакций на стороне сервера | Да | Нет |
Показатели хранилища | Да | Нет |
Функция очистки очереди | Да | Нет |
Группы сообщений | Нет | Да
(с помощью сеансов обмена сообщениями) |
Обнаружение повторяющихся сообщений | Нет | Да
(настраивается на стороне отправителя) |
Интеграция WCF | Нет | Да
(содержит готовые привязки WCF) |
Интеграция WF | Индивидуальная настройка
(требует создания настраиваемого действия WF) |
Собственный
(содержит готовые действия WF) |
В этом разделе приведен сравнительный анализ очередей Windows Azure Queues и очередей шины обслуживания с точки зрения мощностей и действующих квот.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Максимальный размер сообщений | 64 КБ
(48 КБ при использовании кодировки Base64) |
256 КБ
(включая заголовок и текст сообщения; максимальный размер заголовка 64 КБ) |
Максимальный размер очереди | 100 ТБ
(ограничен объемом одной учетной записи хранилища) |
1, 2, 3, 4 или 5 ГБ
(определяется при создании очереди) |
Максимальный срок жизни сообщения | 7 дней | Без ограничений |
Максимальное количество очередей | Без ограничений | 10 000
(для одного пространства имен службы, может быть увеличено) |
Максимальное количество одновременно работающих клиентов | Без ограничений | Без ограничений
(ограничение на 100 одновременных соединений относится только к обмену данными по протоколу TCP) |
В этом разделе приведен сравнительный анализ функций управления очередей Windows Azure и очередей шины обслуживания.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Протокол управления | REST поверх HTTP/HTTPS | REST поверх HTTPS |
Протокол среды выполнения | REST поверх HTTP/HTTPS | REST поверх HTTPS
TCP с поддержкой TLS |
API под управлением .NET | Да
(API клиента хранилища под управлением .NET) |
Да
(API обмена промежуточными сообщениями .NET) |
Java API | Да | Да |
PHP API | Да | Да |
Node.js API | Да | Нет |
Поддержка произвольных метаданных | Да | Нет |
Правила именования очередей | Длина до 63 символов
(в имени очереди необходимо использовать только нижний регистр) |
Длина до 260 символов
(имена очередей не чувствительны к регистру) |
Функция получения длины очереди | Да
(приблизительное значение) |
Да
(точное значение для конкретного момента времени) |
Функция считывания | Да | Нет |
В этом разделе приведен сравнительный анализ очередей Windows Azure Queues и очередей шины обслуживания с точки зрения производительности.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Максимальная пропускная способность | До 2000 сообщений в секунду | До 2000 сообщений в секунду
(на основании теста производительности с использованием сообщений длиной 1 КБ) |
Среднее время задержки | 10 мс
(с отключенным алгоритмом TCP Nagle [10]) |
100 мс |
Режим регулирования количества запросов | Отклонение запросов с выдачей кода ошибки HTTP 503
(запросы, получаемые в режиме регулирования количества запросов, не тарифицируются) |
Отклонение запросов с выдачей исключения и кода ошибки HTTP 503
(запросы, получаемые в режиме регулирования количества запросов, не тарифицируются) |
В этом разделе приведен сравнительный анализ функций проверки подлинности и авторизации очередей Windows Azure и очередей шины обслуживания.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Проверка подлинности | Симметричный ключ | Заявки ACS |
Контроль доступа на основе ролей | Нет | Да
(с помощью ролей ACS) |
Федерация поставщиков удостоверений | Нет | Да |
В этом разделе приведен сравнительный анализ затрат на использование очередей Windows Azure и очередей шины обслуживания.
Критерий сравнения | Очереди Windows Azure | Очереди шины обслуживания |
Стоимость транзакции для очереди | 0,01 долл. США
(за 10 000 транзакций) |
0,01 долл. США
(за 10 000 сообщений) |
Тарифицируемые операции | Все | Только отправка и получение
(за прочие операции плата не взимается) |
Транзакции без рабочей нагрузки | Тарифицируются
(запрос к пустой очереди считается тарифицируемой транзакцией) |
Тарифицируются
(получение сообщения из пустой очереди тарифицируется) |
Стоимость хранения данных | 0,14 долл. США
(за ГБ в месяц) |
0,00 долл. США |
Стоимость исходящих данных | 0,12–0,19 долл. США
(в зависимости от географического местоположения) |
0,12–0,19 долл. США
(в зависимости от географического местоположения) |
Стоимость транзакций при использовании службы Windows Azure Access Control (ACS) | 0,00 долл. США
(служба ACS не используется) |
1,99 долл. США
(за 10 000 запросов маркеров; см. комментарий ниже) |
Примечание. Все показатели стоимости могут быть изменены. Приведенная выше таблица отражает ценообразование на момент написания этой статьи. Статья не содержит рекламных предложений, доступных на момент прочтения. Актуальные сведения о ценообразовании приведены на странице Обзор ценообразования [14].
Очевидно, что принятие решения об использовании очередей Windows Azure или очередей шины обслуживания зависит от большого числа факторов. Эти факторы зависят от конкретных требований вашего приложения и его архитектуры. Если ваше приложение уже использует основные функции Windows Azure, вы можете выбрать очереди Windows Azure. Это особенно актуально, если вам необходимы базовые возможности обмена данными и сообщениями между службами или же если вам нужны очереди, объем которых превышает 5 ГБ.
Очереди шины обслуживания обладают множеством расширенных функций: сеансы, транзакции, обнаружение повторов, автоматическое перемещение в очередь на удаление, отказоустойчивые средства публикации и подписки. Это решение можно выбрать в том случае, если вы создаете гибридное приложение или если для работы вашего приложения необходимы вышеперечисленные возможности.
В начале этой статьи дан обзор предписаний и рекомендаций. Далее рассмотрены возможности технологий организации очередей, доступных в среде Windows Azure. Группировка возможностей по функциональному признаку позволяет провести наглядный сравнительный анализ для выявления сходств и различий между очередями Windows Azure и очередями шины обслуживания.
Углубленное изучение этих вопросов поможет вам выбрать технологию организации очередей, наиболее подходящую для решения конкретных задач.
How to Use Service Bus Queues (Использование очередей шины обслуживания) [16]
How to Use the Queue Storage Service (Использование службы хранилища на основе очередей) [17]
The Developer's Guide to Service Bus (Шина обслуживания; руководство разработчика) [19]
Windows Azure Tables and Queues Deep Dive (Таблицы и очереди Windows Azure — глубокое погружение) [20]
Windows Azure Storage Architecture (Архитектура хранилища Windows Azure) [21]
Using the Queuing Service in Windows Azure (Использование службы очередей в Windows Azure) [22]
Автор: XaocCPS
Источник [24]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows-azure/18421
Ссылки в тексте:
[1] Image: http://windowsazure.com/ru-ru/
[2] хранилища Windows Azure: http://www.windowsazure.com/en-us/home/tour/storage
[3] обмена сообщениями Windows Azure: http://www.windowsazure.com/en-us/home/tour/service-bus/
[4] метода на основе долгоживущих HTTP-соединений: http://en.wikipedia.org/wiki/Comet_(programming)
[5] DequeueCount: http://msdn.microsoft.com/ru-ru/library/windowsazure/microsoft.windowsazure.storageclient.cloudqueuemessage.dequeuecount.aspx
[6] SessionID: http://msdn.microsoft.com/ru-ru/library/windowsazure/microsoft.servicebus.messaging.brokeredmessage.sessionid.aspx
[7] MessageID: http://msdn.microsoft.com/ru-ru/library/windowsazure/microsoft.servicebus.messaging.brokeredmessage.messageid.aspx
[8] Windows Azure Service Bus Quotas (Квоты шины обслуживания Windows Azure): http://msdn.microsoft.com/ru-ru/library/windowsazure/ee732538.aspx
[9] Naming Queues and Metadata (Именование очередей и метаданные): http://msdn.microsoft.com/en-us/library/windowsazure/dd179349.aspx
[10] TCP Nagle: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/06/25/nagle-s-algorithm-is-not-friendly-towards-small-requests.aspx
[11] Best Practices for Performance Improvements Using Service Bus Brokered Messaging (Рекомендованные способы повышения производительности при использовании шины обслуживания для обмена промежуточными сообщениями): http://msdn.microsoft.com/ru-ru/library/windowsazure/hh528527.aspx
[12] ServerBusyException: http://msdn.microsoft.com/ru-ru/library/windowsazure/microsoft.servicebus.messaging.serverbusyexception.aspx
[13] Authenticating Access to Your Storage Account (Проверка подлинности при доступе к учетной записи хранилища): http://msdn.microsoft.com/en-us/library/windowsazure/hh225339.aspx
[14] Обзор ценообразования: http://www.windowsazure.com/en-us/pricing/details
[15] Best Practices for Leveraging Windows Azure Service Bus Brokered Messaging API (Практические рекомендации по использованию API обработки промежуточных сообщений для шины обслуживания Windows Azure): http://msdn.microsoft.com/ru-ru/library/windowsazure/hh545245.aspx
[16] How to Use Service Bus Queues (Использование очередей шины обслуживания): http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues
[17] How to Use the Queue Storage Service (Использование службы хранилища на основе очередей): http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service
[18] Introducing Queues and Topics in Azure Service Bus (Представляем очереди и темы, реализованные для шины обслуживания Azure): http://www.code-magazine.com/article.aspx?quickid=1112041
[19] The Developer's Guide to Service Bus (Шина обслуживания; руководство разработчика): http://www.cloudcasts.net/devguide/
[20] Windows Azure Tables and Queues Deep Dive (Таблицы и очереди Windows Azure — глубокое погружение): http://www.microsoftpdc.com/2009/SVC09
[21] Windows Azure Storage Architecture (Архитектура хранилища Windows Azure): http://blogs.msdn.com/b/windowsazurestorage/archive/2011/11/20/windows-azure-storage-a-highly-available-cloud-storage-service-with-strong-consistency.aspx
[22] Using the Queuing Service in Windows Azure (Использование службы очередей в Windows Azure): http://www.developerfusion.com/article/120197/using-the-queuing-service-in-windows-azure/
[23] Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity (Система тарификации хранилища Windows Azure — пропускная способность, транзакции и емкость): http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx
[24] Источник: http://habrahabr.ru/post/156715/
Нажмите здесь для печати.