91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springcloud(四):熔斷器Hystrix

發布時間:2020-08-10 16:51:10 來源:ITPUB博客 閱讀:142 作者:明理蘿 欄目:軟件技術

說起springcloud熔斷讓我想起了去年股市中的熔斷,多次痛的領悟,隨意實施的熔斷對整個系統的影響是災難性的,好了接下來我們還是說正事。愿意了解源碼的朋友直接求求交流分享技術:二一四七七七五六三三


雪崩效應


在微服務架構中通常會有多個服務層調用,基礎服務的故障可能會導致級聯故障,進而造成整個系統不可用的情況,這種現象被稱為服務雪崩效應。服務雪崩效應是一種因“服務提供者”的不可用導致“服務消費者”的不可用,并將不可用逐漸放大的過程。


如果下圖所示:A作為服務提供者,B為A的服務消費者,C和D是B的服務消費者。A不可用引起了B的不可用,并將不可用像滾雪球一樣放大到C和D時,雪崩效應就形成了。

springcloud(四):熔斷器Hystrix

熔斷器(CircuitBreaker)


熔斷器的原理很簡單,如同電力過載保護器。它可以實現快速失敗,如果它在一段時間內偵測到許多類似的錯誤,會強迫其以后的多個調用快速失敗,不再訪問遠程服務器,從而防止應用程序不斷地嘗試執行可能會失敗的操作,使得應用程序繼續執行而不用等待修正錯誤,或者浪費CPU時間去等到長時間的超時產生。熔斷器也可以使應用程序能夠診斷錯誤是否已經修正,如果已經修正,應用程序會再次嘗試調用操作。


熔斷器模式就像是那些容易導致錯誤的操作的一種代理。這種代理能夠記錄最近調用發生錯誤的次數,然后決定使用允許操作繼續,或者立即返回錯誤。 熔斷器開關相互轉換的邏輯如下圖:

springcloud(四):熔斷器Hystrix

熔斷器就是保護服務高可用的最后一道防線。


Hystrix特性


1.斷路器機制


斷路器很好理解, 當Hystrix Command請求后端服務失敗數量超過一定比例(默認50%), 斷路器會切換到開路狀態(Open). 這時所有請求會直接失敗而不會發送到后端服務. 斷路器保持在開路狀態一段時間后(默認5秒), 自動切換到半開路狀態(HALF-OPEN). 這時會判斷下一次請求的返回情況, 如果請求成功, 斷路器切回閉路狀態(CLOSED), 否則重新切換到開路狀態(OPEN). Hystrix的斷路器就像我們家庭電路中的保險絲, 一旦后端服務不可用, 斷路器會直接切斷請求鏈, 避免發送大量無效請求影響系統吞吐量, 并且斷路器有自我檢測并恢復的能力.


2.Fallback


Fallback相當于是降級操作. 對于查詢操作, 我們可以實現一個fallback方法, 當請求后端服務出現異常的時候, 可以使用fallback方法返回的值. fallback方法的返回值一般是設置的默認值或者來自緩存.


3.資源隔離


在Hystrix中, 主要通過線程池來實現資源隔離. 通常在使用的時候我們會根據調用的遠程服務劃分出多個線程池. 例如調用產品服務的Command放入A線程池, 調用賬戶服務的Command放入B線程池. 這樣做的主要優點是運行環境被隔離開了. 這樣就算調用服務的代碼存在bug或者由于其他原因導致自己所在線程池被耗盡時, 不會對系統的其他服務造成影響. 但是帶來的代價就是維護多個線程池會對系統帶來額外的性能開銷. 如果是對性能有嚴格要求而且確信自己調用服務的客戶端代碼不會出問題的話, 可以使用Hystrix的信號模式(Semaphores)來隔離資源. 資料和源碼來源  


技術架構圖如下:


springcloud(四):熔斷器Hystrix

整體代碼結構如下:

springcloud(四):熔斷器Hystrix

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉木萨尔县| 嘉鱼县| 海丰县| 南平市| 江川县| 息烽县| 长寿区| 平定县| 澄城县| 武宁县| 县级市| 周口市| 靖宇县| 高尔夫| 肇源县| 即墨市| 盐源县| 剑河县| 图木舒克市| 额尔古纳市| 灵川县| 晴隆县| 新宾| 斗六市| 定兴县| 博客| 无极县| 喀喇| 平利县| 富民县| 沾化县| 巴林左旗| 洪洞县| 洛隆县| 红原县| 潍坊市| 镇康县| 丹东市| 象州县| 扶风县| 房山区|