SpringCloud系列八 Hystrix 簡介

2021-09-20 21:23:48 字數 829 閱讀 6747

1、分布式系統面臨的問題

複雜分布式體系結構中的應用程式有數十個依賴關係,每個依賴關係在某些時候將不可避免地失敗。

服務雪崩:

多個微服務之間呼叫的時候,假設微服務a呼叫微服務b和微服務c,微服務b和微服務c又呼叫其它的微服務,這就是所謂的「扇出」。如果扇出的鏈路上某個微服務的呼叫響應時間過長或者不可用,對微服務a的呼叫就會占用越來越多的系統資源,進而引起系統崩潰,所謂的「雪崩效應」。

對於高流量的應用來說,單一的後端依賴可能會導致所有伺服器上的所有資源都在幾秒鐘內飽和。比失敗更糟糕的是,這些應用程式還可能導致服務之間的延遲增加,備份佇列,執行緒和其他系統資源緊張,導致整個系統發生更多的級聯故障。這些都表示需要對故障和延遲進行隔離和管理,以便單個依賴關係的失敗,不能取消整個應用程式或系統。

2、hystrix簡介

hystrix是乙個用於處理分布式系統的延遲和容錯的開源庫,在分布式系統裡,許多依賴不可避免的會呼叫失敗,比如超時、異常等,hystrix能夠保證在乙個依賴出問題的情況下,不會導致整體服務失敗,避免級聯故障,以提高分布式系統的彈性。

「斷路器」本身是一種開關裝置,當某個服務單元發生故障之後,通過斷路器的故障監控(類似熔斷保險絲),向呼叫方返回乙個符合預期的、可處理的備選響應(fallback),而不是長時間的等待或者丟擲呼叫方無法處理的異常,這樣就保證了服務呼叫方的執行緒不會被長時間、不必要地占用,從而避免了故障在分布式系統中的蔓延,乃至雪崩。

3、主要功能

服務降級。

服務熔斷。

服務限流。

實時監控。

Spring Cloud系列勘誤

spring cloud系列已經寫完了,這是一系列的學習筆記,由於寫作匆忙,難免會有出錯的文字或者 實在抱歉。目前作者已經發現了幾處有錯誤的地方,為了小夥伴們在學習的過程中不陷入泥淖,我將已發現的幾處錯誤先列出來,如果小夥伴還有發現其他錯誤,歡迎指正。1.使用spring cloud搭建高可用服務註...

SpringCloud系列十二 Zuul

zuul包含了對請求的路由和過濾兩個最主要的功能 其中路由功能負責將外部請求 到具體的微服務例項上,是實現外部訪問統一入口的基礎而過濾器功能則負責對請求的處理過程進行干預,是實現請求校驗 服務聚合等功能的基礎。zuul和eureka進行整合,將zuul自身註冊為eureka服務治理下的應用,同時從e...

SpringCloud系列學習

在講解springcloud 之前,我們先講一講單體架構系統。所謂的單體架構就是所有功能,都放在乙個應用裡。比如後面要講的乙個單體產品服務應用,提供資料和檢視都在乙個springboot裡。單體架構系統有其好處,如便於開發,測試,部署也很方便,直接打成乙個 jar 或者 war,就什麼都好了。不過單...