長連接

短連接:每次通信時夸盟,創(chuàng)建 Socket;一次通信結(jié)束像捶,調(diào)用 socket.close()上陕。這就是一般意義上的短連接,短連接的好處是管理起來比較簡單拓春,存在的連接都是可用的連接释簿,不需要額外的控制手段。

長連接:每次通信完畢后硼莽,不會關閉連接庶溶,這樣就可以做到連接的復用。長連接的好處便是省去了創(chuàng)建連接的耗時懂鸵。

連接的逼荩活:KeepAlive

首先想到的是 TCP 中的 KeepAlive 機制。KeepAlive 并不是 TCP 協(xié)議的一部分匆光,但是大多數(shù)操作系統(tǒng)都實現(xiàn)了這個機制套像。KeepAlive 機制開啟后,在一定時間內(nèi)(一般時間為 7200s终息,參數(shù)tcp_keepalive_time)在鏈路上沒有數(shù)據(jù)傳送的情況下夺巩,TCP 層將發(fā)送相應的KeepAlive探針以確定連接可用性,探測失敗后重試 10(參數(shù)tcp_keepalive_probes)次周崭,每次間隔時間 75s(參數(shù)tcp_keepalive_intvl)柳譬,所有探測失敗后,才認為當前連接已經(jīng)不可用续镇。

KeepAlive 機制是在網(wǎng)絡層面保證了連接的可用性美澳,但站在應用框架層面我們認為這還不夠。主要體現(xiàn)在兩個方面:

KeepAlive 的開關是在應用層開啟的,但是具體參數(shù)(如重試測試人柿,重試間隔時間)的設置卻是操作系統(tǒng)級別的柴墩,位于操作系統(tǒng)的/etc/sysctl.conf配置中,這對于應用來說不夠靈活凫岖。

KeepAlive 的苯龋活機制只在鏈路空閑的情況下才會起到作用,假如此時有數(shù)據(jù)發(fā)送哥放,且物理鏈路已經(jīng)不通歼指,操作系統(tǒng)這邊的鏈路狀態(tài)還是 ESTABLISHED,這時會發(fā)生什么甥雕?自然會走 TCP 重傳機制踩身,要知道默認的 TCP 超時重傳,指數(shù)退避算法也是一個相當長的過程社露。

KeepAlive 本身是面向網(wǎng)絡的挟阻,并不是面向于應用的,當連接不可用時峭弟,可能是由于應用本身 GC 問題附鸽,系統(tǒng) load 高等情況,但網(wǎng)絡仍然是通的瞒瘸,此時坷备,應用已經(jīng)失去了活性,所以連接自然應該認為是不可用的情臭。

看來省撑,應用層面的連接保活還是必須要做的俯在。

連接的本癸活:應用層心跳

如何理解應用層的心跳?簡單來說跷乐,就是客戶端會開啟一個定時任務肥败,定時對已經(jīng)建立連接的對端應用發(fā)送請求(這里的請求是特殊的心跳請求),服務端則需要特殊處理該請求劈猿,返回響應。如果心跳持續(xù)多次沒有收到響應潮孽,客戶端會認為連接不可用揪荣,主動斷開連接。不同的服務治理框架對心跳往史,建連仗颈,斷連,拉黑的機制有不同的策略,但大多數(shù)的服務治理框架都會在應用層做心跳挨决,Dubbo 也不例外请祖。

TCP和 HTTP 的 KeepAlive 區(qū)別對待

HTTP 協(xié)議的 KeepAlive 意圖在于連接復用,同一個連接上串行方式傳遞請求-響應數(shù)據(jù)

TCP 的 KeepAlive 機制意圖在于辈逼恚活肆捕、心跳,檢測連接錯誤盖高。

這壓根是兩個概念慎陵。

資料來源:http://blog.itpub.net/31556476/viewspace-2375225/

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市喻奥,隨后出現(xiàn)的幾起案子席纽,更是在濱河造成了極大的恐慌,老刑警劉巖撞蚕,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件润梯,死亡現(xiàn)場離奇詭異,居然都是意外死亡甥厦,警方通過查閱死者的電腦和手機纺铭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矫渔,“玉大人彤蔽,你說我怎么就攤上這事∶硗荩” “怎么了顿痪?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長油够。 經(jīng)常有香客問我蚁袭,道長,這世上最難降的妖魔是什么石咬? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任揩悄,我火速辦了婚禮,結(jié)果婚禮上鬼悠,老公的妹妹穿的比我還像新娘删性。我一直安慰自己,他們只是感情好焕窝,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布蹬挺。 她就那樣靜靜地躺著,像睡著了一般它掂。 火紅的嫁衣襯著肌膚如雪巴帮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音榕茧,去河邊找鬼垃沦。 笑死,一個胖子當著我的面吹牛用押,可吹牛的內(nèi)容都是我干的肢簿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼只恨,長吁一口氣:“原來是場噩夢啊……” “哼译仗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起官觅,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纵菌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后休涤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咱圆,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年功氨,在試婚紗的時候發(fā)現(xiàn)自己被綠了序苏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡捷凄,死狀恐怖忱详,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跺涤,我是刑警寧澤匈睁,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站桶错,受9級特大地震影響航唆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜院刁,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一糯钙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧退腥,春花似錦任岸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颓帝,卻和暖如春米碰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背购城。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工吕座, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘪板。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓吴趴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侮攀。 傳聞我的和親對象是個殘疾皇子锣枝,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355