Период проверки отказа клиента HornetQ

Предположим, что через 30 секунд (по умолчанию client-failure-check-period) клиент не получил никаких пакетов от сервера из-за проблем с сетевым подключением.

Будет ли клиент теперь отключен от сеанса/соединения?

Предположим, теперь я добавляю эту конфигурацию:

<retry-interval>1000</retry-interval>
<retry-interval-multiplier>1.5</retry-interval-multiplier>
<max-retry-interval>60000</max-retry-interval>
<reconnect-attempts>1000</reconnect-attempts>

Что произойдет сейчас?

Будет ли клиент по-прежнему отключаться от сеанса/соединения, но только после попытки повторного подключения 1000 раз (пока сеть снова не будет доступна)? Или он будет игнорировать необходимость отключения?


person user5157427    schedule 02.02.2016    source источник


Ответы (1)


Что касается вашего первого вопроса и согласно документации HornetQ, его можно найти в разделе 17.2. Обнаружение сбоя со стороны клиента:

Пока клиент получает данные с сервера, он будет считать соединение активным.

Если клиент не получает никаких пакетов в течение client-failure-check-period миллисекунды, он будет считать соединение неудачным и либо инициирует отработку отказа, либо вызовет экземпляры FailureListener (или экземпляры ExceptionListener, если вы используете JMS) в зависимости от того, как он был настроен.

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

По вашему второму вопросу, также согласно документации HornetQ, которую можно найти в разделе 34.3. Настройка атрибутов переподключения/повторного подключения:

reconnect-attempts. Этот необязательный параметр определяет общее количество попыток повторного подключения до отказа и завершения работы. Значение -1 означает неограниченное количество попыток. Значение по умолчанию — 0.

Так что да, соединение будет разорвано после 1000 попыток.

person aribeiro    schedule 11.02.2016