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

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

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

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

Spring Cloud教學視頻http://blog.csdn.net/boxiong86/article/details/78399104

 

Hystrix運作流程

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


6-3 Hystrix的運作流程圖

簡單說明一下運作流程:

     第一步:在命令開始執行時,會做一些準備工作,例如爲命令創建相應的線程池(後面章節講述)等。

     第二步:判斷是否打開了緩存,打開了緩存就直接查找緩存並返回結果。

     第三步:判斷斷路器是否打開,如果打開了,就表示鏈路不可用,直接執行回退方法。結合本章開頭的例子,可理解爲“基礎服務”模塊不可用,“服務A”模塊直接執行回退,響應用戶請求。

     第四步:判斷線程池、信號量(計數器等條件,例如像線程池超負荷,則執行回退方法,否則,就去執行命令的內容(例如前面例子中的調用服務)。

     第五步:執行命令,計算是否要對斷路器進行處理,執行完成後,如果滿足一定條件,則需要開啓斷路器。如果執行成功,則返回結果,反之則執行回退。

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

6-3的流程圖對Hystrix的運作流程做了最簡單的描述,對於部分的細節,在此不進行贅述,讀者大致瞭解運作流程即可。

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

Spring Cloud教學視頻http://blog.csdn.net/boxiong86/article/details/78399104

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

發佈了66 篇原創文章 · 獲贊 10 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章