專業(yè)的短鏈接生成工具
鏈接域名
短網(wǎng)址有效期
新浪短鏈接請(qǐng)求超時(shí)怎么辦?
更新時(shí)間:2025-4-20 04:54:38 作者:愛短鏈
【愛短鏈】免費(fèi)社群營銷短鏈接生成器,是為社群營銷人員量身定制的高效推廣工具,不僅可以縮短美化推廣鏈接,提高點(diǎn)擊率的同時(shí),還不易引起反感,不容易被刪除,也能夠在QQ、微信等生態(tài)中完美兼容,短鏈接生成器完全免費(fèi),大家可以點(diǎn)擊上方生成工具,趕緊去試試吧!
如果發(fā)送端發(fā)送連接請(qǐng)求,可以想象A,但由于網(wǎng)絡(luò)原因?qū)е鲁瑫r(shí),此時(shí)TCP啟動(dòng)超時(shí)重傳機(jī)制,再次發(fā)送連接請(qǐng)求B,此時(shí),請(qǐng)求順利到達(dá)接收端,接收端響應(yīng)后建立請(qǐng)求,發(fā)送數(shù)據(jù)后斷開連接。最后,請(qǐng)求A在兩端關(guān)閉并到達(dá)接收端。此時(shí),接收端將認(rèn)為需要建立連接,以響應(yīng)請(qǐng)求并進(jìn)入ESTABLISHED狀態(tài)。但客戶端其實(shí)是CLOSED狀態(tài)會(huì)導(dǎo)致服務(wù)端等待,浪費(fèi)資源。 例如,客戶端向服務(wù)器發(fā)送建立連接的請(qǐng)求,請(qǐng)求未收到確認(rèn),因此發(fā)送了第二個(gè)建立連接的請(qǐng)求。數(shù)據(jù)傳輸和關(guān)閉連接后,第一個(gè)加班連接剛剛發(fā)送到服務(wù)器,服務(wù)器將與故障請(qǐng)求建立連接,浪費(fèi)資源。
長輪詢(LongPolling)客戶端也發(fā)起了請(qǐng)求。與短輪詢問不同,服務(wù)端在收到請(qǐng)求后不會(huì)立即返回響應(yīng),而是會(huì)掛起請(qǐng)求,直到數(shù)據(jù)更新??蛻舳藨?yīng)后,客戶端立即發(fā)出下一個(gè)請(qǐng)求,所以本質(zhì)上還是輪詢。與短輪查詢相比,長輪查詢明顯減少了許多無效請(qǐng)求,節(jié)約了資源。但缺點(diǎn)是連接和懸掛也會(huì)導(dǎo)致資源浪費(fèi)。 設(shè)置加班:等待請(qǐng)求響應(yīng)時(shí),不要無限堵塞,設(shè)置加班時(shí)間,超過時(shí)間返回;根據(jù)負(fù)載能力,限制客戶請(qǐng)求數(shù)量,超過上限,以下請(qǐng)求直接返回失??;監(jiān)控客戶請(qǐng)求,如果失敗比超過閾值,保險(xiǎn)絲,立即失敗。 對(duì)于成員資格的要求(也用于數(shù)據(jù)分區(qū)的分配),有相應(yīng)的超時(shí)時(shí)間。如果超時(shí),相應(yīng)的存儲(chǔ)服務(wù)器將重新測試并排除在服務(wù)之外。
新浪短鏈接請(qǐng)求超時(shí)怎么辦?
1.我們需要首先確定該請(qǐng)求是否加班。如果加班,我們將直接返回加班異常,否則我們需要重置該請(qǐng)求的加班時(shí)間,以防止因多次重試而超過用戶配置的加班時(shí)間,從而影響業(yè)務(wù)處理的耗時(shí)。 具體來說,客戶端首先向服務(wù)端發(fā)送請(qǐng)求。服務(wù)端收到請(qǐng)求后,如果數(shù)據(jù)未更新,則不會(huì)立即返回。服務(wù)端阻止請(qǐng)求返回,直到數(shù)據(jù)更新或連接加班。服務(wù)端返回?cái)?shù)據(jù)后,客戶端再次發(fā)送相同的請(qǐng)求, 長輪查詢完美地解決了短輪查詢的問題。首先,服務(wù)端沒有在沒有數(shù)據(jù)更新的情況下返回客戶端的數(shù)據(jù),因此避免了客戶端的大量重復(fù)請(qǐng)求。
此外,客戶端在收到服務(wù)端返回后立即發(fā)送下一個(gè)請(qǐng)求,以確保更好的數(shù)據(jù)實(shí)時(shí)性。但長輪查詢并不完美: 建立和關(guān)閉連接需要時(shí)間:每個(gè)請(qǐng)求和響應(yīng)都需要建立和關(guān)閉短連接;長連接只需要第一次建立連接,請(qǐng)求和響應(yīng)可以直接傳輸。相對(duì)而言,建立連接、關(guān)閉連接也需要時(shí)間,長連接效率更高。主動(dòng)發(fā)送請(qǐng)求不同:短連接一般是客戶主動(dòng)向服務(wù)端發(fā)送請(qǐng)求;長連接可以是客戶主動(dòng)發(fā)送請(qǐng)求,也可以是服務(wù)主動(dòng)發(fā)送。兩者的使用場景不同:短連接適用于客戶請(qǐng)求頻率低的場景,如瀏覽網(wǎng)頁等。長連接適用于聊天室、實(shí)時(shí)游戲等客戶端和服務(wù)端頻繁通信的場景。
輪詢(Polling),也被稱為短輪查詢,但客戶端定期向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端返回響應(yīng)數(shù)據(jù),因此獲得的數(shù)據(jù)不是實(shí)時(shí)的,有延遲。此外,由于服務(wù)端的不斷要求,往往沒有新的數(shù)據(jù)更新,所以大多數(shù)請(qǐng)求都是無效的,這嚴(yán)重浪費(fèi)了服務(wù)端的資源。輪詢的優(yōu)點(diǎn)是簡單、易于理解、易于實(shí)現(xiàn),這也是我們第一版選擇輪詢的原因。 輪詢(Polling),也被稱為短輪查詢,但客戶端定期向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端返回響應(yīng)數(shù)據(jù),因此獲得的數(shù)據(jù)不是實(shí)時(shí)的,有延遲。此外,由于服務(wù)端的不斷要求,往往沒有新的數(shù)據(jù)更新,所以大多數(shù)請(qǐng)求都是無效的,這嚴(yán)重浪費(fèi)了服務(wù)端的資源。
輪詢的優(yōu)點(diǎn)是簡單、易于理解、易于實(shí)現(xiàn),這也是我們第一版選擇輪詢的原因。 常規(guī)用于客戶端HTTP發(fā)出初始請(qǐng)求,等待響應(yīng)服務(wù)器延遲響應(yīng),知道更新可用數(shù)據(jù)或超時(shí)。當(dāng)更新可用時(shí),服務(wù)器將向客戶端發(fā)送完整響應(yīng)??蛻舳送ǔ?huì)在收到響應(yīng)后立即發(fā)送新的長輪詢請(qǐng)求,或者在暫停后發(fā)送請(qǐng)求,以允許可接受的延遲期。每個(gè)長輪詢問請(qǐng)求都有超時(shí)。由于加班,客戶端必須在鏈接關(guān)閉后定期重新鏈接。 加班是任何分布式系統(tǒng)的基本概念。如果系統(tǒng)的一部分發(fā)出請(qǐng)求,而另一部分在一定時(shí)間內(nèi)未能處理請(qǐng)求,請(qǐng)求加班。然后,請(qǐng)求者可以使用系統(tǒng)故障部分的冗余實(shí)例自動(dòng)重新測試請(qǐng)求。 在第一個(gè)方案開發(fā)上線后,我們發(fā)現(xiàn)了新的問題,業(yè)務(wù)側(cè)加班仍然很明顯!這個(gè)原因很容易想到,對(duì)于不同的業(yè)務(wù)方,我們只配置加班配置,雖然一些業(yè)務(wù)方(主要是C端業(yè)務(wù),對(duì)接口加班非常敏感)會(huì)提前加班,然后觸發(fā)重試,但我的應(yīng)用程序線程仍然堵塞要求,這是資源的浪費(fèi),仔細(xì)想想,以前的問題還沒有解決,在客戶端重試服務(wù)dubbo線程不是還得爆嗎?
新浪短鏈接請(qǐng)求超時(shí)怎么辦?
真正的問題是一些存儲(chǔ)服務(wù)器的網(wǎng)絡(luò)問題,一些存儲(chǔ)服務(wù)器(處理非常大的元數(shù)據(jù)表)的成員資格要求被加班,這些服務(wù)器變得不可用,并不斷重新測試他們的要求。 若服務(wù)端重發(fā)FIN2沒有成功MSL當(dāng)時(shí)間傳遞給客戶端時(shí),服務(wù)端將繼續(xù)加班重試,直到連接斷開。防止后續(xù)連接中出現(xiàn)無效連接請(qǐng)求報(bào)文段。