欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年12月06日 11:55:04   作者:Sam哥哥  
今天小編就為大家分享一篇關(guān)于客戶端設(shè)置超時(shí)時(shí)間真的很重要,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

概述

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

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

從這里我們可以看到,最終小程序端會(huì)整體響應(yīng)很慢,因?yàn)樗{(diào)用了聚合層,而聚合層又調(diào)用了一個(gè)性能很差的購(gòu)物車服務(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)物車服務(wù),如果兩秒鐘沒有返回結(jié)果,則超時(shí)報(bào)錯(cuò)。這樣做有兩個(gè)好處。

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

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

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

  • 負(fù)載均衡模式
  • 斷路器模式
  • 后備模式
  • 艙壁模式

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

總結(jié)

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

相關(guān)文章

  • 兩張動(dòng)圖--帶你搞懂TCP的三次握手與四次揮手

    兩張動(dòng)圖--帶你搞懂TCP的三次握手與四次揮手

    TCP是一種傳輸控制協(xié)議,是面向連接的、可靠的、基于字節(jié)流之間的傳輸層通信協(xié)議,由IETF的RFC 793定義。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,TCP完成第四層傳輸層所指定的功能
    2021-06-06
  • Java 8 Stream流強(qiáng)大的原理

    Java 8 Stream流強(qiáng)大的原理

    這篇文章主要介紹了Java 8 Stream流強(qiáng)大的原理,Java 8 API添加了一個(gè)新的抽象稱為流Stream,可以讓你以一種聲明的方式處理數(shù)據(jù)。本文會(huì)對(duì)Stream的實(shí)現(xiàn)原理進(jìn)行剖析,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2021-12-12
  • 如何基于Java實(shí)現(xiàn)對(duì)象List排序

    如何基于Java實(shí)現(xiàn)對(duì)象List排序

    這篇文章主要介紹了如何基于Java實(shí)現(xiàn)對(duì)象List排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Stream distinct根據(jù)list某個(gè)字段去重的解決方案

    Stream distinct根據(jù)list某個(gè)字段去重的解決方案

    這篇文章主要介紹了Stream distinct根據(jù)list某個(gè)字段去重,stream的distinct去重方法,是根據(jù) Object.equals,和 Object.hashCode這兩個(gè)方法來判斷是否重復(fù)的,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 了解java中的session

    了解java中的session

    這篇文章主要介紹了了解java中的session的相關(guān)問題,什么是session,session怎么用等,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • java微信開發(fā)第二步 獲取消息和回復(fù)消息

    java微信開發(fā)第二步 獲取消息和回復(fù)消息

    這篇文章主要為大家分享java微信開發(fā)的第二步,如何獲取消息和回復(fù)消息,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Mybatis返回插入主鍵id的方法

    Mybatis返回插入主鍵id的方法

    這篇文章主要介紹了 Mybatis返回插入主鍵id的方法,在文章底部給大家補(bǔ)充了Mybatis中insert中返回主鍵ID的方法,非常不錯(cuò),需要的朋友可以參考下
    2017-04-04
  • Java Tree結(jié)構(gòu)數(shù)據(jù)中查找匹配節(jié)點(diǎn)方式

    Java Tree結(jié)構(gòu)數(shù)據(jù)中查找匹配節(jié)點(diǎn)方式

    這篇文章主要介紹了Java Tree結(jié)構(gòu)數(shù)據(jù)中查找匹配節(jié)點(diǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 使用SpringMVC訪問Controller接口返回400BadRequest

    使用SpringMVC訪問Controller接口返回400BadRequest

    這篇文章主要介紹了使用SpringMVC訪問Controller接口返回400BadRequest,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • mybatis-generator如何自定義注釋生成

    mybatis-generator如何自定義注釋生成

    這篇文章主要介紹了mybatis-generator如何自定義注釋生成的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論