教程:一起学习Hystrix--服务(依赖)失败场景的表象
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
目錄
- Hystrix本系列博文
- 依賴(lài)失敗的表象
- 依賴(lài)失敗觸發(fā)回退的表象
- 級(jí)聯(lián)失敗的表象
- 服務(wù)自己失敗而不是依賴(lài)失敗的表象
- 聲明
Hystrix本系列博文
??? 以下為博主寫(xiě)Hystrix系列的文章列表如下:
???? 點(diǎn)擊查看 Hystrix入門(mén)
????點(diǎn)擊查看 Hystrix命令執(zhí)行
????點(diǎn)擊查看 Hystrix處理異常機(jī)制(降級(jí)方法)
????點(diǎn)擊查看 Hystrix命令名稱(chēng)、分組、線(xiàn)程池
????點(diǎn)擊查看 Hystrix命令名稱(chēng)、Hystrix請(qǐng)求處理
????點(diǎn)擊查看 Hystrix請(qǐng)求處理
????點(diǎn)擊查看 Hystrix常用場(chǎng)景--失敗
????點(diǎn)擊查看 Hystrix常用場(chǎng)景--降級(jí)(回退)
??? 點(diǎn)擊查看 Hystrix斷路器配置及使用場(chǎng)景
依賴(lài)失敗的表象
???? 在分布式系統(tǒng)中,最典型的失敗類(lèi)型是單個(gè)依賴(lài)失敗或休眠,而其他所有的都保持健康。 在這些情況下,度量和指示板非常明顯地顯示正在發(fā)生的事情:
????上面的截圖顯示了一個(gè)帶有20%錯(cuò)誤率的單電路:高到足以產(chǎn)生影響,但還不足以啟動(dòng)斷路器。其他三個(gè)電路不受影響。
???? 在這個(gè)特定的例子中,是實(shí)際的錯(cuò)誤,而不是延遲,這導(dǎo)致了問(wèn)題——就像紅色數(shù)字而不是橙色顯示的那樣。
???? 在同一事件中,捕捉到了以下圖表,以下圖標(biāo)顯示這條線(xiàn)路的歷史趨勢(shì),以及在故障和降級(jí)中是如何急劇上升的。
????
依賴(lài)失敗觸發(fā)回退的表象
??? 這個(gè)圖表是另一個(gè)單電路故障的屏幕截圖,注意有99.5%的延遲非常高。 這是底層工作線(xiàn)程要完成的時(shí)間,這將使線(xiàn)程池飽和,并導(dǎo)致調(diào)用線(xiàn)程超時(shí)。
???? 在集群中,除了一臺(tái)機(jī)器之外,所有的機(jī)器都有斷路器被熔斷,這就導(dǎo)致了大多數(shù)流量被短路(藍(lán)色),而在一臺(tái)仍然嘗試大多數(shù)請(qǐng)求的機(jī)器上被超時(shí)了(橙色)。
注意,其他的電路是健康的,左邊的線(xiàn)圖顯示的是返回時(shí)長(zhǎng)500s沒(méi)有增加,因?yàn)檫@個(gè)電路正在返回一個(gè)回退操作,這樣用戶(hù)就會(huì)收到一個(gè)降級(jí)但仍然有用的體驗(yàn)。
級(jí)聯(lián)失敗的表象
??? 下面的屏幕截圖代表了一個(gè)系統(tǒng)的失敗(高延遲情況),這個(gè)系統(tǒng)很大程度上依賴(lài)于許多其他系統(tǒng),因此故障也會(huì)在它們之間發(fā)生。Netflix的API系統(tǒng)必須能夠抵御延遲和失敗,不僅僅因?yàn)閱我坏母驹?#xff0c;而是所有受到它影響的系統(tǒng)。
???? 下面的截圖顯示了6個(gè)電路,代表了三個(gè)不同的系統(tǒng):
????在這一事件發(fā)生時(shí),Hystrix仍然主要是一個(gè)“netflix-api”的東西。隨著Hystrix在越來(lái)越多的團(tuán)隊(duì)中運(yùn)轉(zhuǎn),這進(jìn)一步限制了級(jí)聯(lián)失敗的影響,如下圖所示:
服務(wù)自己失敗而不是依賴(lài)失敗的表象
???? 如果所有的電路看起來(lái)都很糟糕(儀表板都被點(diǎn)亮了),那么很有可能問(wèn)題是自己系統(tǒng),而不是所有的依賴(lài)項(xiàng)同時(shí)發(fā)生。
導(dǎo)致這種問(wèn)題的兩個(gè)案例如下:
- 系統(tǒng)過(guò)載(高負(fù)載,CPU使用率等)。
?????????這可能發(fā)生的一個(gè)例子是,如果自動(dòng)伸縮策略失敗了,或者在流量激增的情況下無(wú)法快速伸縮,機(jī)器接收的流量超出了它們的處理能力。
- 內(nèi)存泄漏最終會(huì)導(dǎo)致GC抖動(dòng),從而竊取CPU并導(dǎo)致暫停,從而導(dǎo)致電路超時(shí)、備份和拒絕 ???????????
聲明
???? 轉(zhuǎn)帖請(qǐng)注明原貼地址: https://my.oschina.net/u/2342969/blog/1820306
轉(zhuǎn)載于:https://my.oschina.net/u/2342969/blog/1820306
總結(jié)
以上是生活随笔為你收集整理的教程:一起学习Hystrix--服务(依赖)失败场景的表象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQLSERVER排查CPU占用高的情况
- 下一篇: PAT1066 Root of AVL