Как бороться с потерянными клиентскими подключениями в Apache Qpid + MRg
При использовании клиента C++ создается впечатление, что если по какой-либо причине соединение с сервером теряется, например, из-за сбоя питания, ручного завершения работы, сети, сервер не обнаруживает потерю клиента. Открытое соединение (или наполовину открытое) сохраняется. Как это можно предотвратить? Есть ли какая-нибудь опция сердцебиения на стороне сервера?
1 ответ
Решение
Клиентское соединение с брокером имеет опцию подключения, которая называется heartbeat. Значения параметра Heartbeat - это целое число, представляющее время в секундах. Кадры подтверждения активности отправляются каждые N секунд. Если пропущены два последовательных сердцебиения, соединение считается потерянным.
Смотрите варианты подключения