2012-12-25 52 views
-3

我正在設計一個帶有客戶端和服務器的系統,客戶端需要向服務器發送心跳,讓服務器知道它是活着的。客戶端是用java編寫的,客戶端和服務器之間的通信使用apache thrift,並且心跳需要由工作線程發送,因爲如果我們使用backgound定時器發送心跳並且工作線程死鎖,服務器會永遠不知道。 我應該如何實現這個心跳機制?如何在java中設計心跳

+0

你曾試過沙發嗎? –

回答

0

您可以通過讓服務器發送一個查詢數據包實現一個簡單的行查詢/線 - 響應機制每隔幾秒(如4)和客戶端的答覆同一個響應返回時,他們得到的來電諮詢包。如果服務器在特定的秒數(例如15)之後沒有從客戶端回聽,或者許多查詢分組未被應答(例如3),則可以將客戶端標記爲關閉並重新啓動套接字連接。