2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Spring Cloud Hystrix有什么作用?

更新時間:2021-03-25 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

在微服務架構中,通常會存在多個服務層調用的情況,如果基礎服務出現故障可能會發生級聯傳遞,導致整個服務鏈上的服務不可用,如圖1所示。

1616661963926_服務故障的級聯傳遞.jpg

圖1 服務故障的級聯傳遞

在圖1中,A為服務提供者,B為A的服務調用者,C和D是B的服務調用者。隨著時間的推移,當A的不可用引起B的不可用,并將不可用逐漸放大到C和D時,整個服務就崩潰了。

為了解決服務級聯失敗這種問題,在分布式架構中產生了斷路器等一系列的服務保護機制。分布式架構中的斷路器,有些類似于我們生活中的空氣開關,當電路發生短路等情況時,空氣開關會立刻斷開電流,以防止用電火災的發生。

在Spring Cloud中,Spring Cloud Hystrix就是用來實現斷路器、線程隔離等服務保護功能的。Spring Cloud Hystrix是基于Netflix的開源框架Hystrix實現的,該框架的使用目標在于通過控制那些訪問遠程系統、服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。

與空氣開關不能自動重新打開有所不同的是,斷路器是可以實現彈性容錯的,在一定條件下它能夠自動打開和關閉,其使用時主要有三種狀態,如圖2所示。

在圖2中,斷路器的開關由關閉到打開的狀態是通過當前服務健康狀況(服務的健康狀況=請求失敗數/請求總數)和設定閾值(默認為10秒內的20次故障)比較決定的。當斷路器開關關閉時,請求被允許通過斷路器,如果當前健康狀況高于設定閾值,開關繼續保持關閉;如果當前健康狀況低于設定閾值,開關則切換為打開狀態。當斷路器開關打開時,請求被禁止通過;如果設置了fallback方法,則會進入fallback的流程。當斷路器開關處于打開狀態,經過一段時間后,斷路器會自動進入半開狀態,這時斷路器只允許一個請求通過;當該請求調用成功時,斷路器恢復到關閉狀態;若該請求失敗,斷路器繼續保持打開狀態,接下來的請求會被禁止通過。

1616661981911_斷路器的三種狀態轉換.jpg

圖2 斷路器的三種狀態轉換

Spring Cloud Hystrix能保證服務調用者在調用異常服務時快速地返回結果,避免大量的同步等待,這是通過HystrixCommand的fallback方法實現的,如圖3所示。

1616661994323_fallback方法.jpg

圖3 fallback方法

在圖3中,雖然A服務仍然不可用,但采用fallback的方式可以給用戶一個友好的提示結果,這樣就避免了其他服務的崩潰問題。


猜你喜歡:

Spring MVC框架有哪些優點?

Spring AOP實現原理和常見代理的區別

Spring Cloud是什么?怎么理解Spring Cloud?

Spring Boot如何實現微服務?/a>

Spring框架功能分為哪些模塊?

傳智教育java培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!