溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

客戶端設(shè)置超時(shí)時(shí)間真的很重要

發(fā)布時(shí)間:2020-10-22 20:44:14 來(lái)源:腳本之家 閱讀:175 作者:Sam哥哥 欄目:編程語(yǔ)言

概述

在一條慢SQL導(dǎo)致購(gòu)物車(chē)服務(wù)無(wú)法使用的解決方案一文中,提到了客戶端調(diào)用購(gòu)物車(chē)服務(wù)的時(shí)候,超時(shí)了。如果當(dāng)時(shí)客戶端沒(méi)有設(shè)置超時(shí)時(shí)間的話,會(huì)在客戶端中產(chǎn)生級(jí)聯(lián)故障。先用一張圖來(lái)說(shuō)明一下。

客戶端設(shè)置超時(shí)時(shí)間真的很重要

聚合層除了調(diào)用購(gòu)物車(chē)微服務(wù),還調(diào)用了營(yíng)銷(xiāo)系統(tǒng)微服務(wù)。如果購(gòu)物車(chē)服務(wù)的接口響應(yīng)時(shí)間很慢,而客戶端聚合層調(diào)用購(gòu)物車(chē)服務(wù)時(shí),又沒(méi)有設(shè)置超時(shí)時(shí)間,那么將占有大量的連接,如果請(qǐng)求購(gòu)物車(chē)服務(wù)的請(qǐng)求量比較大,瞬間就會(huì)把連接占用完,直接導(dǎo)致聚合層調(diào)用營(yíng)銷(xiāo)系統(tǒng)時(shí),需要阻塞住等待獲取連接,這樣的話,整個(gè)小程序的很多功能就都用不了了。

從這里我們可以看到,最終小程序端會(huì)整體響應(yīng)很慢,因?yàn)樗{(diào)用了聚合層,而聚合層又調(diào)用了一個(gè)性能很差的購(gòu)物車(chē)服務(wù)。產(chǎn)生級(jí)聯(lián)故障了,小程序端和聚合層都在等待中耗盡了資源,這個(gè)是非??膳碌氖虑椤?/p>

設(shè)置超時(shí)時(shí)間

聚合層是使用了Spring Cloud Ribbon,我們可以設(shè)置一下Ribbon的超時(shí)時(shí)間。具體的可以參看SpringCloud Edgware.SR3版本中Ribbon的timeout設(shè)置方法

ribbon:
  ReadTimeout: 2000
  ConnectTimeout: 2000

這樣的話,聚合層調(diào)用購(gòu)物車(chē)服務(wù),如果兩秒鐘沒(méi)有返回結(jié)果,則超時(shí)報(bào)錯(cuò)。這樣做有兩個(gè)好處。

  • 快速失敗,釋放資源;
  • 聚合層調(diào)用購(gòu)物車(chē)雖然失敗了,但是聚合層調(diào)用營(yíng)銷(xiāo)系統(tǒng)則仍然可以進(jìn)行,不受影響。小程序端使用到營(yíng)銷(xiāo)系統(tǒng)接口的功能也能繼續(xù)使用;

知識(shí)擴(kuò)展

客戶端保持彈性真心很重要,因此像客戶端中的

都是需要了解的。要做一個(gè)彈性客戶端,可以借助一些工具,像NetflixHystrix組件就非常不錯(cuò),并且已經(jīng)被Spring Cloud集成進(jìn)去了,使用起來(lái)也比較簡(jiǎn)單。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI