Я работаю над доказательством реализации концепции NServiceBus v4.x для работы.NServiceBus Pub/Sub Distributor/Worker Scenario Too Slow
Сейчас у меня есть два подписчика и один издатель.
Издатель может публиковать более 500 сообщений в секунду. Он отлично работает.
Подписчик A работает без дистрибьюторов/работников. Это единый процесс.
Подписчик B работает с одним дистрибьютором, питающим N количество рабочих.
В моем тесте я попал в конечную точку, которая создает и публикует 100 000 сообщений. Я это публикую с подписчиками вне очереди.
Подписчик A обрабатывает 100 сообщений в секунду. Абонент B с 2+ работниками (тот же результат с 2, 3 или 4) борется с 50 сообщениями в секунду, валовыми для всех работников.
По моему сценарию, работники (которые я увеличил до 40 потоков на одного работника) ждут, когда дистрибьютор даст им работу.
Я пропустил что-то, что может вызвать дросселирование дистрибьютора? Все автобусы имеют неограниченную лицензию Dev.
Информация о системе: Intel Core i5 M520 @ 2,40 ГГц 8 Гб оперативной памяти SSD жесткого диска
UPDATE 08/06/2013: Я закончил развертывание системы на множество серверов. Я испытываю те же результаты. Каждый сервер с рабочим, который я добавляю, снижает производительность подписчика.
Подписчик B имеет дистрибьютора на одном сервере и два дополнительных сервера для рабочих. С подписчиком B и одним сервером с активным работником я испытываю ~ 80 сообщений/событий в секунду. Добавление другого рабочего на дополнительный физический аппарат уменьшает значение до 50 сообщений в секунду. Кроме того, это «фиктивные сообщения». Никакой логики не происходит в обработчиках, кроме журнала сообщения через log4net. Отключение регистрации не увеличивает производительность.
Предложения?
Хорошо, спасибо. –
Собираемся закончить несколько дополнений к POC (например, Sagas), а затем я проверю его с серверами нашего ИТ-отдела. –
Сохранение настроек сервера. Почти готово. Должен иметь обновление к началу следующей недели. –