Управление потоками в диффузионном сервере pushtechnology задерживает публикацию обновлений клиента
У нас есть контрольный клиент, который отправляет 100 обновлений размером 200-250 байт каждый раз в 2 секунды клиентам через рассылку по разным темам (одно обновление на тему в 2 секунды). проблема заключается в том, что один раз после отправки этих сообщений в течение примерно 20-30 минут, управление потоком запускается, и обновления задерживаются от 5 мс до 100 мс через 1-2 часа из-за управления потоком. Есть ли способ избежать управления потоком для публикации Control Client в диффузии?
maxqueuesize установлен 10000 API-интерфейс диффузии: давление =0.04622500000000004 => сон в течение 4 мс
1 ответ
Управление потоком было введено в клиенте Java в v5.1 и клиенте.NET в v5.5. Оно существует для предотвращения переполнения внутренней очереди, что в противном случае закрыло бы сеанс клиента. Это симптом, который выдает более глубокие проблемы.
Это происходит по нескольким причинам:
Ваш сервер Diffusion не справляется со своей рабочей нагрузкой. То, что это происходит через некоторое время, заставляет задуматься, а тратит ли JVM вашего сервера слишком много времени на сбор мусора. Java Missions Control хорошо ответит на этот вопрос.
Реже мы видим, что это влияет на управляющих клиентов с двойными ролями, например, при создании и обновлении тем и реагировании на такие события, как уведомления о пропущенных темах. Управление потоком является функцией ряда вещей, включая насыщение очереди и количество неудовлетворенных запросов. Если это так, рассмотрите отдельный сеанс для каждой роли.
Рассмотрите и исследуйте первую и более простую возможность, прежде чем переходить ко второй. Если проблема не устраняется, свяжитесь с нами по адресу support@pushtechnology.com,
Мартин