共計(jì) 790 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
這篇文章主要介紹了 Hystrix 運(yùn)作流程是怎么樣的,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
Hystrix 運(yùn)作流程
在前面的例子中,使用 Hystrix 時(shí)僅僅創(chuàng)建命令并予以執(zhí)行,看似簡單,實(shí)際上,Hystrix 有一套較為復(fù)雜的執(zhí)行邏輯,為了能讓大家大致了解該執(zhí)行過程,筆者將整個(gè)流程作了簡化。Hystrix 的運(yùn)作流程請見圖 6 -3。
圖 6 -3 Hystrix 的運(yùn)作流程圖
簡單說明一下運(yùn)作流程:
第一步:在命令開始執(zhí)行時(shí),會(huì)做一些準(zhǔn)備工作,例如為命令創(chuàng)建相應(yīng)的線程池(后面章節(jié)講述)等。
第二步:判斷是否打開了緩存,打開了緩存就直接查找緩存并返回結(jié)果。
第三步:判斷斷路器是否打開,如果打開了,就表示鏈路不可用,直接執(zhí)行回退方法。結(jié)合本章開頭的例子,可理解為“基礎(chǔ)服務(wù)”模塊不可用,“服務(wù) A”模塊直接執(zhí)行回退,響應(yīng)用戶請求。
第四步:判斷線程池、信號量(計(jì)數(shù)器)等條件,例如像線程池超負(fù)荷,則執(zhí)行回退方法,否則,就去執(zhí)行命令的內(nèi)容(例如前面例子中的調(diào)用服務(wù))。
第五步:執(zhí)行命令,計(jì)算是否要對斷路器進(jìn)行處理,執(zhí)行完成后,如果滿足一定條件,則需要開啟斷路器。如果執(zhí)行成功,則返回結(jié)果,反之則執(zhí)行回退。
整個(gè)流程最主要的點(diǎn),就在于斷路器是否被打開,后面會(huì)講解斷路器的相關(guān)內(nèi)容。我們的客戶端在使用 Hystrix 時(shí),表面上只是創(chuàng)建了一個(gè)命令來執(zhí)行,實(shí)際上 Hystrix 已經(jīng)為客戶端添加了幾層的保護(hù)。
圖 6 - 3 的流程圖對 Hystrix 的運(yùn)作流程做了最簡單的描述,對于部分的細(xì)節(jié),在此不進(jìn)行贅述,讀者大致了解運(yùn)作流程即可,后面章節(jié)會(huì)詳細(xì)描述。
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“Hystrix 運(yùn)作流程是怎么樣的”這篇文章對大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!