Hystrix是什麼?Hystrix是一個用於處理分散式系統的延遲和容錯的開源庫,Hystrix能夠保證在一個依賴出問題的情況下,不會導致整體服務失敗,避免級聯故障,以提高分散式系統的彈性。
2021-06-21 17:42:38
Hystrix是什麼?
Hystrix是一個用於處理分散式系統的延遲和容錯的開源庫,Hystrix能夠保證在一個依賴出問題的情況下,不會導致整體服務失敗,避免級聯故障,以提高分散式系統的彈性。
簡單說,在日益龐大的微服務系統中,Hystrix的作用就是來避免當某個服務發生故障時,形成發散型的影響,導致越來越多的服務故障。
Hystrix有什麼?
資源隔離
包括執行緒池隔離和訊號量隔離,限制呼叫分散式服務的資源使用,某一個呼叫的服務出現問題不會影響其他服務呼叫。
Hystrix隔離模式--訊號量模式
當 n 個併發請求去呼叫一個目標服務介面時,都要獲取一個訊號量才能真正去呼叫目標服務介面,但訊號量有限,預設是 10 個(通過maxConcurrentRequests參數配置),如果併發請求數多於訊號量個數,就有執行緒需要進入佇列排隊,但排隊佇列也有上限,預設是 5,如果排隊佇列也滿,則必定有請求執行緒會走 fallback 流程,從而達到限流和防止雪崩的目的。
Hystrix隔離模式--執行緒池模式
當 n 個請求執行緒併發對某個介面請求呼叫時,會先從 hystrix 管理的執行緒池裡面獲得一個執行緒,然後將參數傳遞給這個執行緒去執行真正呼叫。執行緒池的大小有限,預設是 10 個執行緒(maxConcurrentRequests參數配置),如果併發請求數多於執行緒池執行緒個數,就有執行緒需要進入佇列排隊,但排隊佇列也有上限,預設是 5,如果排隊佇列也滿,則必定有請求執行緒會走 fallback 流程。
執行緒池模式可以支援非同步呼叫,支援超時呼叫,支援直接熔斷,存線上程切換,開銷大。
兩種模式的對比
通過二者的對比,我們可以發現訊號量模式比較適用於一些業務邏輯比較複雜的訪問,而執行緒池的適用性比較普遍,特別是對外的服務訪問
降級機制
什麼是降級?
當伺服器壓力劇增的情況下,根據當前業務情況及流量對一些服務和頁面有策略的降級,以此釋放伺服器資源以保證核心任務的正常運行。
降級機制有哪些?
超時降級、資源不足時(執行緒或訊號量)降級,降級後可以配合降級介面返回託底資料。
服務融斷
服務熔斷是什麼?
一般是指軟體系統中,由於某些原因使得服務出現了過載現象,為防止造成整個系統故障,從而採用的一種保護措施,所以很多地方把熔斷亦稱為過載保護。
為什麼需要服務熔斷?
很多時候剛開始可能只是系統出現了局部的、小規模的故障,然而由於種種原因,故障影響的範圍越來越大,最終導致了全局性的後果。 適用場景:防止應用程式直接呼叫那些很可能會呼叫失敗的遠端服務或共享資源
快取
快取在高併發的環境下使用,能夠有效地減少伺服器的壓力, 使用Hystrix返回結果快取,後續請求可以直接呼叫快取資料。
快取的使用
開啟請求快取:在實現HystrixCommand或HystrixObservableCommand時,通過過載getCacheKey()方法來開啟請求快取
清理失效快取功能:Hystrix中,可以通過HystrixRequestCache.clear()方法來進行快取的清理,適用於對快取資料進行更新的場景。
相關文章
Hystrix是什麼?Hystrix是一個用於處理分散式系統的延遲和容錯的開源庫,Hystrix能夠保證在一個依賴出問題的情況下,不會導致整體服務失敗,避免級聯故障,以提高分散式系統的彈性。
2021-06-21 17:42:38
iOS 有一個錯誤,會禁用 iPhone 上的 WiFi 網路。有一個特定的 WiFi 名稱會導致您的 iPhone 禁用無線網路。我們建議您不要嘗試修改此網路名稱,除非您希望手機的 wifi 功能被中
2021-06-21 17:42:18
豐色 發自 凹非寺量子位 報道 | 公眾號 QbitAI波士頓動力機器狗Spot,上崗已滿一年。這一年來,共計約有數百隻Spot被出售到全球各地。圖片有趣的是,波士頓動力當時並沒有給Spot
2021-06-21 17:41:38
據微軟官方訊息稱,微軟將在6月24日晚23點舉行新品釋出會,將釋出「過去十年中最重要的更新之一」。微軟還「意外」洩露了新品資訊,新一代作業系統將登臺,且它的名稱可能不是Windo
2021-06-21 17:41:09
2021年4月,慧示WITSEER正式推出了一款1080P超短焦便攜投影儀——慧示P9,僅需近牆半米距離即能呈現90英寸大屏,直接解決了眾多投影使用者面對的尷尬-小空間環境卻想享受大畫面,更
2021-06-21 17:40:43
為了應對來自ARM陣營的挑戰,英特爾曾在第10代酷睿時期推出過代號為「Lakefield」的混合酷睿平臺——酷睿i3-L13G4和i5-L16G7這兩顆處理器首發英特爾Foveros 3D封裝技術和混合
2021-06-21 17:40:10