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