NServiceBus 4.0.4 Абонент очень медленный
У меня проблема с моей реализацией публикации / подписки. Я обновляю NServiceBus версии 2.6 до 4.0.4, и, насколько я понимаю из журналов, все выглядит нормально, но подписчик обрабатывает сообщения очень медленно. Я использую NServiceBus.Host.exe.
В старой реализации я настроил потоки следующим образом:
<MsmqTransportConfig
ErrorQueue="error"
NumberOfWorkerThreads="40"
MaxRetries="5" />
И сообщения проходят с хорошей скоростью.
В новой реализации я попытался внести изменения, необходимые для конфигураций:
<TransportConfig
MaximumConcurrencyLevel="10"
MaxRetries="5"
MaximumMessageThroughputPerSecond="500"/>
Я что-то упускаю из виду?
У меня есть действующая лицензия, поэтому я должен использовать максимальное количество потоков. У меня нет RavenDB или SQL, в реализации используется MSMQ, я отключил Sagas и TimeoutManager в коде конфигурации моих подписчиков:
NServiceBus.SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
Configure.Features.Disable<Sagas>();
NServiceBus.Configure.With()
.DefaultBuilder()
.UseTransport<Msmq>()
.DisableTimeoutManager()
.UnicastBus()
.LoadMessageHandlers();
Я провел грубый тест, и разница в моей среде разработки такова, что версия 2.6 обрабатывает примерно 80 сообщений в секунду, а версия 4.0.4 обрабатывает примерно 8 сообщений в секунду - что на самом деле очень плохо. Так что здесь что-то не так, и я просто не могу понять, что это такое.
Редактировать: похоже, что проблема была сгенерирована из структуры нашего проекта, по какой-то причине старая версия NServiceBus не возражала против нашего структурного подхода с универсальным подписчиком, который использует MEF для загрузки реальных сборок подписчика, но новая ушла в спячку. Я изменил структуру папок, и теперь подписчик работает как задумано. Таким образом, конфигурации, которые я использовал, работали очень хорошо, но я действительно удалил MaximumMessageThroughputPerSecond из моих настроек, чтобы это не представляло проблемы в будущем, так как цель состоит в том, чтобы быть максимально быстрой.