Указание настроек распространителя

На каждом компьютере с запущенным обработчиком уведомлений (как правило, с помощью службы Windows NS$имя_экземпляра) можно запустить распространитель. При определении приложения следует определить один или несколько распространителей, компьютеры, на которых они выполняются, и рабочие настройки для этих распространителей.

Обработка распространителя

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

Уведомления, которые невозможно распространить, возвращаются в пул рабочих элементов. Если для уведомлений имеется расписание повторной доставки и срок уведомлений не истек, то распространитель пытается их обработать в следующем интервале.

Определение распространителей

В выпусках SQL Server Enterprise Edition, Developer Edition и Evaluation Edition приложения могут иметь несколько распространителей. Это дает определенные преимущества, если приложение выполняет сложное форматирование или работает с большими объемами данных.

Каждый распространитель выполняет сходные функции, но использование нескольких распространителей может повысить производительность форматирования содержимого и доставки, распределяя нагрузку по нескольким серверам.

Если для приложения определено несколько распространителей, то необходимо разместить их на различных серверах. Размещение нескольких распространителей на одном сервере не дает никаких преимуществ. Если разместить два распространителя одного приложения на одном компьютере, то службы Notification Services вернут ошибку при попытке создать или обновить приложение.

В выпуске SQL Server Standard Edition приложение может иметь только одного распространителя.

Для контроля производительности распространителя используйте объекты производительности генератора и распространителя служб Notification Services. Дополнительные сведения см. в разделе Объекты производительности служб Notification Services.

Определение распространителей для приложения

При определении приложения с помощью XML-документа задайте распространителей в файле определения приложения (ADF). При определении приложения программным путем используйте управляющие объекты служб Notification Services для определения распространителей.

Указание настроек распространителя

При определении распространителя укажите рабочие настройки, включая имя системы, на которой выполняется распространитель, количество доступных потоков и как часто распространитель выполняет поиск уведомлений.

Определение распространителя

Системное имя

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

На компьютере должны быть установлены клиентские компоненты служб Notification Services, и должен быть зарегистрирован экземпляр службы.

Если приложение использует несколько распространителей, то у каждого распространителя должно быть уникальное системное имя.

Дополнительные сведения о горизонтальном масштабировании приложения см. в разделе Конфигурации с горизонтальным масштабированием.

Указание системного имени распространителя

Размер пула потоков

Размер пула потоков распространителя определяет максимальное количество потоков, которое распространитель может использовать для обработки рабочих элементов. Распространитель может использовать меньше потоков, если требуется обработать меньше рабочих элементов.

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

В выпусках SQL Server 2005 Enterprise Edition, Developer Edition и Evaluation Edition размер пула потоков не ограничен. Если размер пула потоков не задать или задать его равным 0, то службы Notification Services используют собственный алгоритм для определения оптимального количества потоков.

ms172521.note(ru-ru,SQL.90).gifВажно!
В выпуске SQL Server 2005 Standard Edition размер пула потоков распространителя должен быть равным 1, 2 или 3. Значение по умолчанию — 3.

Определение оптимального размера пула потоков

Если требуется ограничить загрузку процессора распространителем, то можно указать более низкое значение. Если уменьшить размер пула потоков, то распространитель параллельно обработает меньше рабочих элементов, что, соответственно, снизит требования распространителя к системным ресурсам в сценариях с использованием больших объемов данных.

Указание размера пула потоков распространителя

Длительность такта распространителя

Длительность такта распространения определяет частоту проверки рабочих элементов свободным распространителем. Если распространитель не свободен, то такт распространителя не имеет значения, так как распространитель проверяет наличие дополнительных рабочих элементов в начале и завершении обработки текущего рабочего элемента.

ms172521.note(ru-ru,SQL.90).gifПримечание.
Длительность такта распространителя не зависит от длительности такта генератора. Дополнительные сведения о такте генератора см. в разделе Указание длительности такта генератора.

При настройке длительности такта распространителя можно выбрать короткий интервал, например 20 секунд, или длинный интервал, например 5 минут. Однако существует компромисс между скоростью приложения и потреблением ресурсов.

  • Если задать очень короткую длительность такта, то приложение будет потреблять больше системных ресурсов. Распространитель при этом будет быстрее реагировать на наличие новых рабочих элементов после периода простоя, и подписчики будут получать уведомления быстрее.
  • Если задать большую длительность такта, то приложение будет потреблять меньше системных ресурсов. Но возможна задержка между созданием уведомлений приложением и доставкой уведомлений распространителем.

Если приложение не справляется с рабочей нагрузкой распространения, то следует рассмотреть возможность добавления распространителей на отдельных серверах. Для горизонтального масштабирования приложений требуется выпуск SQL Server 2005 Enterprise Edition, Developer Edition или Evaluation Edition.

Указание длительности такта распространителя

См. также

Основные понятия

Объекты производительности служб Notification Services
Форматирование уведомлений и архитектура доставки

Другие ресурсы

Определение приложений служб Notification Services

Справка и поддержка

Получение помощи по SQL Server 2005