瘋狂Spring Cloud連載(16)Hystrix運做流程

本文節選自《瘋狂Spring Cloud微服務架構實戰》html

京東購買地址:https://item.jd.com/12256011.htmlgit

噹噹網購買地址:http://product.dangdang.com/25201393.html緩存

Spring Cloud教學視頻:https://my.oschina.net/JavaLaw/blog/1552993架構

Spring Cloud電子書:https://my.oschina.net/JavaLaw/blog/1570383微服務

 

Hystrix運做流程

在前面的例子中,使用Hystrix時僅僅建立命令並予以執行,看似簡單,實際上,Hystrix有一套較爲複雜的執行邏輯,爲了能讓你們大體瞭解該執行過程,筆者將整個流程做了簡化。Hystrix的運做流程請見圖6-3。spa

圖6-3 Hystrix的運做流程圖.net

簡單說明一下運做流程:線程

  • 第一步:在命令開始執行時,會作一些準備工做,例如爲命令建立相應的線程池(後面章節講述)等。
  • 第二步:判斷是否打開了緩存,打開了緩存就直接查找緩存並返回結果。
  • 第三步:判斷斷路器是否打開,若是打開了,就表示鏈路不可用,直接執行回退方法。結合本章開頭的例子,可理解爲「基礎服務」模塊不可用,「服務A」模塊直接執行回退,響應用戶請求。
  • 第四步:判斷線程池、信號量(計數器)等條件,例如像線程池超負荷,則執行回退方法,不然,就去執行命令的內容(例如前面例子中的調用服務)。
  • 第五步:執行命令,計算是否要對斷路器進行處理,執行完成後,若是知足必定條件,則須要開啓斷路器。若是執行成功,則返回結果,反之則執行回退。

        整個流程最主要的點,就在於斷路器是否被打開,後面會講解斷路器的相關內容。咱們的客戶端在使用Hystrix時,表面上只是建立了一個命令來執行,實際上Hystrix已經爲客戶端添加了幾層的保護。視頻

        圖6-3的流程圖對Hystrix的運做流程作了最簡單的描述,對於部分的細節,在此不進行贅述,讀者大體瞭解運做流程便可,後面章節會詳細描述。htm

本文節選自《瘋狂Spring Cloud微服務架構實戰》

Spring Cloud教學視頻:https://my.oschina.net/JavaLaw/blog/1552993

Spring Cloud電子書:https://my.oschina.net/JavaLaw/blog/1570383

本書代碼共享地址:https://gitee.com/yangenxiong/SpringCloud

相關文章
相關標籤/搜索