最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SpringCloud微服務(wù)Hystrix:如何解決災(zāi)難性雪崩效應(yīng)?

2021-05-12 17:10 作者:編程大戰(zhàn)  | 我要投稿

一、什么是災(zāi)難性的雪崩效應(yīng)

? ???在微服務(wù)架構(gòu)的項(xiàng)目中,尤其是中大型項(xiàng)目,肯定會(huì)出現(xiàn)一個(gè)服務(wù)調(diào)用其他的服務(wù),其他服務(wù)又調(diào)用別的服務(wù),服務(wù)和服務(wù)之間形成了一種鏈?zhǔn)降恼{(diào)用關(guān)系。

? ? ??導(dǎo)致服務(wù)U和服務(wù)T的負(fù)載過高。運(yùn)行性能下降。會(huì)導(dǎo)致其他調(diào)用服務(wù)U和服務(wù)T的鏈條出現(xiàn)問題。從而所有的項(xiàng)目可能都出現(xiàn)的問題。

? ? ? 當(dāng)其中某一個(gè)服務(wù)突然遇到大量請(qǐng)求時(shí)。整個(gè)鏈條上所有服務(wù)負(fù)載驟增。

?這種情況就稱為災(zāi)難性的雪崩效應(yīng)。

二、雪崩效應(yīng)原因:

  1. 服務(wù)提供者Application Service不可用。

    (1)硬件故障、

    (2)程序BUG

    (3)緩存擊穿

    (4)并發(fā)請(qǐng)求量過大等。

  2. 重試加大流量。

    (1)用戶重試

    (2)代碼重試邏輯等。

  3. 服務(wù)調(diào)用者Application Client不可用。

    (1)同步請(qǐng)求阻塞造成的資源耗盡等。

? ? 雪崩效應(yīng)最終的結(jié)果就是?服務(wù)鏈條中的某一個(gè)服務(wù)不可用,導(dǎo)致一系列的服務(wù)不可用,最終造成服務(wù)邏輯崩潰。這種問題造成的后果,往往是無法預(yù)料的。

三、如何防止災(zāi)難性雪崩效應(yīng)

1、降級(jí)

? ? ? 降級(jí)是指,當(dāng)請(qǐng)求超時(shí)、資源不足等情況發(fā)生時(shí)進(jìn)行服務(wù)降級(jí)處理,不調(diào)用真實(shí)服務(wù)邏輯,而是使用快速失敗(fallback)方式直接返回一個(gè)托底數(shù)據(jù),保證服務(wù)鏈條的完整,避免服務(wù)雪崩。

2、熔斷

? ? ? 當(dāng)一定時(shí)間內(nèi),異常請(qǐng)求比例(請(qǐng)求超時(shí)、網(wǎng)絡(luò)故障、服務(wù)異常等)達(dá)到閥值時(shí),啟動(dòng)熔斷器,熔斷器一旦啟動(dòng),則會(huì)停止調(diào)用具體服務(wù)邏輯,通過fallback快速返回托底數(shù)據(jù),保證服務(wù)鏈的完整。

3、請(qǐng)求緩存

? ? ? Hystrix為了降低訪問服務(wù)的頻率,支持將一個(gè)請(qǐng)求與返回結(jié)果做緩存處理。如果再次請(qǐng)求的URL沒有變化,那么Hystrix不會(huì)請(qǐng)求服務(wù),而是直接從緩存中將結(jié)果返回。這樣可以大大降低訪問服務(wù)的壓力。

4、請(qǐng)求合并

  1. 沒有請(qǐng)求合并

    Application Service 負(fù)載是Application Client發(fā)送請(qǐng)求的總數(shù)量

  2. 請(qǐng)求合并

    把一段時(shí)間范圍內(nèi)的所有請(qǐng)求合并為一個(gè)請(qǐng)求。大大的降低了Application Service 負(fù)載。

5、隔離

  1. 線程池隔離

  2. 信號(hào)量隔離

  3. 線程池隔離和信號(hào)量隔離

  4. 限流說明

四、Hystrix簡(jiǎn)介

? ? 在Spring Cloud中解決災(zāi)難性雪崩效應(yīng)就是通過Spring Cloud Netflix Hystrix實(shí)現(xiàn)的。

? ? Hystrix?[h?st'r?ks],中文含義是豪豬,因其背上長(zhǎng)滿棘刺,從而擁有了自我保護(hù)的能力。本文所說的Hystrix(中文:斷路器)是Netflix開源的一款容錯(cuò)框架,同樣具有自我保護(hù)能力。

? ? 通俗解釋:Hystrix就是保證在高并發(fā)下即使出現(xiàn)問題也可以保證程序繼續(xù)運(yùn)行的一系列方案。作用包含兩點(diǎn):容錯(cuò)和限流。

? ? 在Spring cloud中處理服務(wù)雪崩效應(yīng),都需要依賴hystrix組件。在Application Client應(yīng)用的pom文件中都需要引入下述依賴:

<dependency>

? ? ? ? ? ?<groupId>org.springframework.cloud</groupId>

? ? ? ? ? ?<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>

</dependency>

通過使用Hystrix,我們能方便的防止雪崩效應(yīng), 同時(shí)使系統(tǒng)具有自動(dòng)降級(jí)和自動(dòng)恢復(fù)服務(wù)的效果.

詳細(xì)解決方法可以觀看上方視頻,免費(fèi)領(lǐng)取源代碼資料哦~

SpringCloud微服務(wù)Hystrix:如何解決災(zāi)難性雪崩效應(yīng)?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
海淀区| 汾阳市| 高青县| 宁武县| 二连浩特市| 天气| 时尚| 杂多县| 武义县| 北辰区| 新竹县| 三亚市| 红原县| 友谊县| 固阳县| 天镇县| 江陵县| 财经| 呼伦贝尔市| 泽库县| 红桥区| 奉化市| 奇台县| 林甸县| 乃东县| 区。| 隆德县| 怀集县| 磐安县| 新宾| 湾仔区| 甘南县| 余江县| 始兴县| 兴国县| 延川县| 华池县| 屏山县| 临沭县| 忻城县| 枣阳市|