Преимущества обработки очередей
При разработке новых приложений разработчики должны учитывать последствия компонентов кодирования для обработки в режиме реального времени (синхронной) и асинхронной (асинхронной) обработки. Выбор зависит от требований конкретного приложения, определяемого базовой бизнес-логикой. В качестве руководства обработка очередей обеспечивает следующие преимущества при обработке в режиме реального времени:
- Снижение зависимости от доступности компонентов
- Более короткие сроки существования компонентов
- Непрерывная производительность при использовании отключенных приложений
- Надежность сообщений
- Эффективное планирование сервера
Доступность компонентов
В приложении обработки в режиме реального времени, если только один компонент транзакции недоступен ( возможно, из-за перегрузки сервера или сетевых проблем) весь процесс блокируется и не может завершиться. В отличие от этого, приложение, использующее службу компонентов COM+, отделяет транзакцию от действий, которые должны быть завершены сейчас, и тех, которые можно завершить позже. Например, сообщения можно поместить в очередь для последующей обработки, чтобы запрашивающий компонент был свободен для других задач.
Время существования компонентов
Приложение, использующее службу компонентов очереди, позволяет серверу работать независимо от клиента. В результате компоненты сервера могут выполняться быстрее. В системе в режиме реального времени компонент сервера существует с момента его создания до окончательного освобождения объекта. Сервер ожидает вызова метода и возврата результатов, что снижает скорость велоспорта объектов сервера и ограничивает масштабируемость сервера.
Отключенные приложения
Увеличение использования ноутбуков, записных книжек и компьютеров с пальмами создало потребность в приложениях, которые иногда отключали клиентов или мобильных пользователей. В системе с очередью эти пользователи могут продолжать работать в отключенном сценарии или при отсутствии подключения к серверу, а затем подключаться к базам данных или серверам для обработки запросов. Например, продавец может принимать заказы от клиентов и позже подключаться к отделу доставки для обработки этих заказов.
Если у вас есть компонент, который может быть запущен либо подключен, либо отключен, сообщения перемещаются в одном направлении, и редко требуется переключиться назад и вперед. Например, в сценарии принятия заказов компонент доставки получает сообщение и обрабатывает его. Он может создать другой компонент для выставления счетов или аудита. Клиент фиксирует перед запуском сервера. Сообщение не отправляется до фиксации приложения.
На следующем рисунке показан поток информации в отключенном сценарии.
Надежность сообщений
Очередь сообщений — это мощное средство, которое использует методы базы данных для обеспечения надежной защиты данных. В случае сбоя сервера очередь сообщений гарантирует откат транзакций, чтобы сообщения не были потеряны и данные не повреждены.
Планирование сервера
Приложение, использующее компоненты очереди, хорошо подходит для выполнения смещенного по времени компонента, который откладывает некритичную работу в непиковый период. Это та же полезная концепция, которая была применена к традиционной обработке пакетного режима. Аналогичные запросы можно отложить для непрерывного выполнения сервером, а не требовать от сервера немедленного реагирования на широкий спектр запросов.