十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
概述
10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有鎮(zhèn)賚免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在一條慢SQL導(dǎo)致購物車服務(wù)無法使用的解決方案一文中,提到了客戶端調(diào)用購物車服務(wù)的時(shí)候,超時(shí)了。如果當(dāng)時(shí)客戶端沒有設(shè)置超時(shí)時(shí)間的話,會(huì)在客戶端中產(chǎn)生級聯(lián)故障。先用一張圖來說明一下。
聚合層除了調(diào)用購物車微服務(wù),還調(diào)用了營銷系統(tǒng)微服務(wù)。如果購物車服務(wù)的接口響應(yīng)時(shí)間很慢,而客戶端聚合層調(diào)用購物車服務(wù)時(shí),又沒有設(shè)置超時(shí)時(shí)間,那么將占有大量的連接,如果請求購物車服務(wù)的請求量比較大,瞬間就會(huì)把連接占用完,直接導(dǎo)致聚合層調(diào)用營銷系統(tǒng)時(shí),需要阻塞住等待獲取連接,這樣的話,整個(gè)小程序的很多功能就都用不了了。
從這里我們可以看到,最終小程序端會(huì)整體響應(yīng)很慢,因?yàn)樗{(diào)用了聚合層,而聚合層又調(diào)用了一個(gè)性能很差的購物車服務(wù)。產(chǎn)生級聯(lián)故障了,小程序端和聚合層都在等待中耗盡了資源,這個(gè)是非??膳碌氖虑?。
設(shè)置超時(shí)時(shí)間
聚合層是使用了Spring Cloud Ribbon
,我們可以設(shè)置一下Ribbon
的超時(shí)時(shí)間。具體的可以參看SpringCloud Edgware.SR3版本中Ribbon的timeout設(shè)置方法
ribbon:
ReadTimeout: 2000
ConnectTimeout: 2000
這樣的話,聚合層調(diào)用購物車服務(wù),如果兩秒鐘沒有返回結(jié)果,則超時(shí)報(bào)錯(cuò)。這樣做有兩個(gè)好處。
知識(shí)擴(kuò)展
客戶端保持彈性真心很重要,因此像客戶端中的
都是需要了解的。要做一個(gè)彈性客戶端,可以借助一些工具,像Netflix
的Hystrix
組件就非常不錯(cuò),并且已經(jīng)被Spring Cloud
集成進(jìn)去了,使用起來也比較簡單。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接