NServiceBus: отправка первого сообщения идет медленно - PullRequest
2 голосов
/ 02 апреля 2012

У нас есть пара сервисов, где мы используем nservicebus для чего-то вроде:

Всякий раз, когда мы используем вызов этой одной службы, скажем, «SendMessageToService2 ()», мы используем следующую функцию, чтобы получить экземпляр статического участника шины для отправки сообщения в очередь Service2.

Publisher.GetInstance().Send()

Это нормально, но только после успешной отправки сообщения. Но с первой попытки ... это медленно и приводит к тому, что наш сервис не может установить локальное время ожидания. То же самое относится и к тому моменту, когда служба / система простаивают в течение дня, а затем, когда мы запускаем сообщение ... снова медленно, но при следующей попытке возвращается в нормальное состояние.

Я немного прочитал, но наткнулся только на реестры MSMQ. idleTimeout, кажется, указывает на что-то интересное, чего я не делал на данный момент ..

Мы используем NServiceBus 3.0, кстати ..

Есть идеи или опыт?

1 Ответ

2 голосов
/ 02 апреля 2012

С точки зрения MSMQ, если первое сообщение медленное, то в большинстве случаев это задержка разрешения имени. То есть преобразование имени пункта назначения в IP-адрес занимает много времени. После разрешения Windows кэширует информацию, поэтому последующие подключения выполняются намного быстрее. Сетевая трассировка может доказать, так ли это на самом деле.

Приветствия
Джон Бруквелл

...