Show/Hide Toolbars

Руководство администратора

Очереди шины сообщений

Ссылки Назад Вверх Вперед

term_icon Rebus — это открытый фреймворк, который используется для реализации асинхронного обмена сообщениями между компонентами системы с помощью очередей

Rebus используется для синхронизации данных и рассылки сигналов обновления кэша между нодами (экземплярами сервиса).

Для каждого приложения создается таблица очередей вида bus_Queue_{HOST_APP_NAME}

Для мониторинга и отладки сообщений, находящихся в очереди, можно использовать следующий SQL-запрос:

select top 10 [id], [headers], cast([body] as varchar(max)) as body

from [dbo].[bus_Queue_{standName}] mq with (nolock)

На странице Очереди шины сообщений отображается окно со списком очередей. Для сообщений в очередях таймаут составляет 1 час. Устаревшие сообщения удаляются регламентным заданием SqlServerQueueClearJob. При необходимости выбранную очередь можно очистить вручную.

Нажатие на кнопку Отправить сигнал рестарта инициирует перезапуск только подсистемы обработки входящих сообщений на выбранном экземпляре сервиса.

caches_list-3

Список очередей шины сообщений

Кастомные настройки приложения

Для управления очередью шины сообщений используются следующие кастомные настройки приложения:

Rebus_BackoffTimes — Управление интервалами между опросами очереди сообщений в Rebus, позволяет задать последовательность таймаутов в миллисекундах. Формат значения: строка, представляющая собой последовательность чисел, разделенных запятыми. Каждое число обозначает временной интервал в миллисекундах. По умолчанию: "500,1000,2000,4000". Примеры значений:

o"100" — опрос очереди новых сообщений будет происходить каждые 100 миллисекунд, вне зависимости от наличия сообщений.

o"100,200,500,1000" — если через 100 миллисекунд нет новых сообщений, следующий опрос будет выполнен через 200 миллисекунд. Если сообщений не поступает и через 200 миллисекунд, интервал увеличится до 500 миллисекунд, и т.д., до достижения максимального периода опроса в 1000 миллисекунд.

Rebus_MaxParallelism Максимальное число асинхронных запросов, выполняемых в рамках одного потока разбора очереди шины сообщений. По умолчанию: 5.

Rebus_NumberOfWorkers — Число потоков, в рамках которых идет разбор очереди шины сообщений. По умолчанию: 1.