有個(gè)挺頭疼的問(wèn)題:設(shè)備要保持在線,隨時(shí)響應(yīng)主人的召喚,但又不想太費(fèi)電。
這時(shí)候,長(zhǎng)連接技術(shù)就像是位聰明的勇士,找到了在節(jié)能與響應(yīng)速度之間的平衡點(diǎn)。
長(zhǎng)連接勇士的日常優(yōu)化
想象一下,你手機(jī)里的那些應(yīng)用,它們就像是王國(guó)里的勇士,時(shí)刻待命。但傳統(tǒng)的做法是,它們不停地和服務(wù)器聊天(發(fā)送和接收數(shù)據(jù)),這自然很耗電。
有一位長(zhǎng)連接勇士呢,它聰明地設(shè)定了“鬧鐘”,只在需要的時(shí)候才跟服務(wù)器打個(gè)招呼,其余時(shí)間就安心休眠。
更絕的是,它還發(fā)現(xiàn)每次和服務(wù)器聊天時(shí),其實(shí)真正有用的信息就那么一小會(huì)兒。
于是,它進(jìn)一步縮短了每次聊天的時(shí)間,只傳遞最關(guān)鍵的信息,然后馬上回去睡覺(jué)。這樣一來(lái),電量就省下來(lái)了。
省電智者的思考
省電智者默默觀察著這一切, 并深入思考了長(zhǎng)連接勇士的實(shí)踐
減少通信次數(shù)和通信時(shí)長(zhǎng), 就可以節(jié)省王國(guó)的糧草
省電智者把規(guī)律刻在了一塊大石頭上
次數(shù)(↓) * 時(shí)長(zhǎng) = 耗電量(↓)
次數(shù) * 時(shí)長(zhǎng)(↓) = 耗電量(↓)
次數(shù)(↓) * 時(shí)長(zhǎng)(↓) = 耗電量(↓↓)
省電智者又思考另外一個(gè)問(wèn)題,
如何在王國(guó)量產(chǎn)和迅速醒來(lái)之間達(dá)成平衡呢
他打聽(tīng)到另外一個(gè)王國(guó)-降功耗找合宙, 原來(lái)他們的王國(guó)一直就有深耕這一領(lǐng)域, 在次數(shù)/時(shí)長(zhǎng)/糧草之間獲得了平衡
PRO模式 --> 次數(shù) * 時(shí)長(zhǎng)(↓) == 耗電量(↓)
STD模式 --> 次數(shù)(↓) * 時(shí)長(zhǎng)(↓) == 耗電量(↓↓)
那代價(jià)是什么呢?
然而,這種節(jié)能方式也有其代價(jià)。
長(zhǎng)連接勇士減少了通信次數(shù)和時(shí)長(zhǎng),可能會(huì)導(dǎo)致錯(cuò)過(guò)重要的信息或信息不完整。
如果通信次數(shù)太少或時(shí)間太短,甚至可能被傳遞消息的驛站誤判為故障,從而被忽略。
那應(yīng)該怎么辦呢?
長(zhǎng)連接勇者向省電智者求助, 而遠(yuǎn)方主人也了解到這個(gè)情況, 他表示可以多喊幾次, 確保勇士們總能聽(tīng)到。
真實(shí)世界中的答案
在業(yè)務(wù)側(cè)多發(fā)幾次. 假設(shè)一次的成功概率是99.9%, 那么喊三次的成功概率就是
(3*99.9%)= 299.7%.
不好意思串臺(tái)了, 前面的是臺(tái)灣算法,
正規(guī)算法應(yīng)該是
1- (0.1% * 0.1% * 0.1%)= 99.9999%
也就是百萬(wàn)分之一的概率, 已經(jīng)是極小概率事件了, 甚至小于TCP的丟包率了。
審核編輯 黃宇
-
省電
+關(guān)注
關(guān)注
0文章
15瀏覽量
8282 -
連接
+關(guān)注
關(guān)注
2文章
101瀏覽量
21261
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論