優雅關閉:其實就是正常的四次揮手
非優雅關閉:向對端傳送乙個rst報文直接進入closed狀態
伺服器為了避免太多time_wait的關閉方式:
1.保證由客戶端主動發起關閉
2.關閉的時候使用rst的方式
3.對處於time_wait狀態的tcp允許重用
一般我們當然最好是選擇第一種方式,實在沒有辦法的時候,我們可以使用so_linger選擇第二種方式,使用so_reuseaddr選擇第三種方式
參考:
優雅的關閉socket
我們在利用iocp 完成埠 進行程式設計的時候,經常要關閉一些不滿足條件的套接字。假如我們直接採用closesocket方法進行關閉的話,繫結到io埠的此套接字的未傳送的資料就會丟失,這種情況是我們不願意發生的。下面介紹一種合理關閉此套接字的方法 首先,利用setsockopt msdn 函式設定套...
SO LINGER和優雅關閉連線
當呼叫closesocket關閉套接字時,so linger將決定系統如何處理殘存在套接字傳送佇列中的資料。處理方式無非兩種 丟棄或者將資料 繼續傳送至對端,優雅關閉連線。事實上,so linger並不被推薦使用,大多數情況下我們推薦使用預設的關閉方式 即下方 中的第一種情況 struct ling...
Spark Streaming優雅的關閉策略優化
我們可以有兩種方式來更加優雅的停止流程式,分別是通過http暴露服務,和通過hdfs做訊息中轉來定時掃瞄mark檔案是否存在來觸發關閉服務。下面我們先來看下通過http暴露服務的核心 負責啟動守護的jetty服務 param port 對外暴露的埠號 param ssc stream上下文 負責接受...