Нужно ли принудительно подключать AMQ NMS через несколько часов?
Мы используем AMQ 5.4.2 Broker и NMS.ActiveMQ 1.5.0 с C#. Работает очень хорошо, как и стек Java, к которому я привык. Однако примерно через 12 часов наблюдается постоянная задержка между отправкой сообщения в очередь и получением его полностью доступным и неактивным потребителем. Иногда доходит до 30 секунд. Исправление заключается в перезапуске брокера или приложений-потребителей. Таким образом, кажется, что связи как-то разрушаются с точки зрения отзывчивости. В настоящее время это очень легкая загрузка системы, но это все изменится:)
Так что мой вопрос... для NMS, как долго я должен держать соединения "подключенными" и должен ли я принудительно переподключаться.. скажем, каждые 4 часа. Я понимаю, что этого не требуется, но я готов сделать это, если другие сочтут это необходимым.
1 ответ
Я бы порекомендовал вам обновить V1.5.0 NMS.ActiveMQ до последней версии 1.5.3, в которой есть некоторые исправления для утечек потоков в мониторе неактивности, который проверяет наличие разорванных соединений сокетов. Со временем эти утечки могут стать причиной замедления вашей работы, поэтому можно с уверенностью сказать, что обновление поможет. Возможно, есть другие вещи, которые замедляют вас, например, когда ваш брокер приближается к пределам памяти и т. Д., Но всегда лучше сначала попробовать самое простое исправление, а затем работать оттуда.