Thrift第八課惡劣環(huán)境異常

1)中間由于長時間沒有進(jìn)行交互,信道被路由器回收

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供田陽網(wǎng)站建設(shè)、田陽做網(wǎng)站、田陽網(wǎng)站設(shè)計、田陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、田陽企業(yè)網(wǎng)站模板建站服務(wù),10多年田陽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

????????客戶端沒有檢測到網(wǎng)絡(luò)連接斷線,服務(wù)器端異常捕獲。日志輸出如下:TSocket::read() recv() <Host: ::ffff:10.95.22.39 Port:50180>errno = 10060


錯誤查找10060

????????由于連接方在一段時間后沒有正確答復(fù)或連接的主機沒有反應(yīng),連接嘗試失敗

知識擴展?

????????TCP不提供及時連接丟失通知,對于實時保證TCP連接正常的應(yīng)用程序,需要實現(xiàn)心跳。Thrift基于TCP連接,但不是真正的長連接,只能應(yīng)用于系統(tǒng)內(nèi)部穩(wěn)定高速的網(wǎng)絡(luò)環(huán)境。為了實現(xiàn)真正的長連接,必須要手動在應(yīng)用程序中添加心跳包,目前采用的方式是客戶端定時發(fā)送一個心跳包,然后服務(wù)器收到之后直接返回該心跳包,客戶端在10秒內(nèi)沒有收到心跳包,說明連接斷開,重新連接。

2)網(wǎng)絡(luò)異常

服務(wù)器端的系統(tǒng)出現(xiàn)大量未釋放的網(wǎng)絡(luò)連接。用netstat -na查看,連接狀態(tài)為CLOSE_WAIT

這個問題主要因為TCP的結(jié)束流程未走完,造成連接未釋放?,F(xiàn)設(shè)客戶端主動斷開連接,流程如下

?????? Client??????????????????????????? 消息??????????????????????????????????? Server
???????? close()
????????????????????????????????????? ------ FIN ------->
??????? FIN_WAIT1???????????????????????????????????????????????????????? CLOSE_WAIT
????????????????????????????????????? <----- ACK -------
??????? FIN_WAIT2
????????????????????????????????????????????????????????????????????????????????? close()
?????????????????????????????????????? <------ FIN ------????????????????????
??????? TIME_WAIT?????????????????????????????????????????????????????? LAST_ACK??????
????????????????????????????????????? ------ ACK ------->?
?????????????????????????????????????????????????????????????????????????????????? CLOSED
?????????? CLOSED

如上圖所示,由于Server的Socket在客戶端已經(jīng)關(guān)閉時而沒有調(diào)用關(guān)閉,造成服務(wù)器端的連接處在“掛起”狀態(tài),而客戶端則處在等待應(yīng)答的狀態(tài)上。此問題的典型特征是:一端處于FIN_WAIT2 ,而另一端處于CLOSE_WAIT.?

核心原因是Thrift在刷新數(shù)據(jù)的時候,拋出異常,傳輸層無法調(diào)用關(guān)閉函數(shù),套接字無法關(guān)閉,因此出現(xiàn)CLOSE_WAIT狀態(tài)

分享文章:Thrift第八課惡劣環(huán)境異常
文章地址:http://muchs.cn/article44/pdjihe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航ChatGPT、面包屑導(dǎo)航響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司