2013-09-19 2 views
3

Наша система NServiceBus отстала на этой неделе (на 300 000 сообщений).Есть ли способ разбить сообщения в очереди ошибок?

В настоящее время мы обрабатываем около 4 сообщений в секунду, поэтому время догоняния слишком велико.

В попытке ускорить процесс мы добавили больше объектов в каждое сообщение NServiceBus (20 сообщений).

Обычно мы отправляем только несколько объектов в сообщение, если это необходимо для совместной обработки.

Но это изменение дало нам значительные улучшения в производительности (мы обрабатываем около 8 сообщений в секунду сейчас). Мы объясняем это меньшим связыванием между работниками NServiceBus и Дистрибьютором.

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

Нам нужен способ разбить эти сообщения и попробовать их снова. Есть ли опция в файле ReturnToSourceQueue.exe, которая может это сделать?

+1

Теперь мы пытаемся подключить NServiceBus к очереди ошибок и потянуть объекты один за другим и установить на них флаг и отправить их обратно дистрибьютору, который будет обрабатываться индивидуально. Если мы увидим сообщение с установленным флагом, мы отправим его другому «ReallyReallyErrorQueue». – Vaccano

+0

Хороший подход - пожалуйста, добавьте это как свой ответ, чтобы я мог его перенести. –

ответ

3

Вы также можете взять на себя управление отказами, используя специальный диспетчер неисправностей для проверки сообщений до пересылки в очередь ошибок.

Смежные вопросы