Как создать сердцебиение в Java

Я проектирую систему с клиентом и сервером, клиент должен отправить тактовый сигнал на сервер, чтобы сервер знал, что он жив. Клиент написан на java, связь между клиентом и сервером использует Apache Thrift, и рабочий поток должен быть отправлен рабочим потоком, потому что если мы используем таймер backgound для отправки тактового импульса, а рабочий поток заблокирован, сервер будет Никогда не знаешь. Как мне реализовать этот механизм сердцебиения?

2 ответа

Можете ли вы проверить, подходит ли эта реализация для вас.

Реализация HeartBeat

Вы можете реализовать простой механизм line-inquire/line-response, позволяя серверу отправлять пакет запроса каждые несколько секунд (например, 4), а клиент отвечает ответом, когда получает пакет запроса. Если сервер не получает ответ от клиента через определенное количество секунд (например, 15) или несколько пакетов запросов остались без ответа (например, 3), вы можете пометить клиента как отключенного и перезапустить сокетное соединение.

Другие вопросы по тегам