2 回答

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
我不認(rèn)為與您展示的方法類似的方法是 Hystrix 原生的,盡管可以通過理解Hystrix確定斷路器是打開還是關(guān)閉的方式來創(chuàng)建一個方法。
此處的流程圖提供了其工作原理的詳細(xì)說明。(這些頁面詳細(xì)介紹了流程圖)其中一個詳細(xì)信息專門針對電路是否開放?.
摘自電路是否開放?
當(dāng)您執(zhí)行命令時,Hystrix 會檢查斷路器以查看電路是否開路。
如果電路打開(或“跳閘”),那么 Hystrix 將不會執(zhí)行命令,但會將流路由到 (8) Get the Fallback。
如果電路閉合,則流程繼續(xù)到 (5) 以檢查是否有可用的容量來運行命令。
通過識別這種行為,檢測狀態(tài)何時從 Closed 變?yōu)?Open 是可能的。
從這個頁面是豪豬事件類型的簡明列表。標(biāo)記的將在上面引用的步驟中有用:

TA貢獻(xiàn)1784條經(jīng)驗 獲得超7個贊
斷路器本身不提供指標(biāo),它僅使用指標(biāo)來通知其在 CLOSED、HALF_OPEN 和 OPEN 之間的轉(zhuǎn)換。
您可以通過為指標(biāo)流創(chuàng)建自己的訂閱者來保持自己的開放和關(guān)閉轉(zhuǎn)換計數(shù)。您只需要跟蹤電路的最后一個已知狀態(tài),當(dāng)您從流中獲得更新時,將最后一個已知狀態(tài)與更新中的狀態(tài)進(jìn)行比較。如果它們不同,則發(fā)生了轉(zhuǎn)換,您將更新自己的計數(shù)器。
在 1.4 中,您必須使用new HystrixMetricsPoller()
,并將您自己的實現(xiàn)傳遞給它,MetricsAsJsonPollerListener
該實現(xiàn)會isCircuitOpen
為每個命令解析提供的 JSON 。
在 1.5 中,您將使用HystrixDashboardStream.getInstance().observe()
并注冊您自己的消費者來獲取更新。我認(rèn)為這種方法需要更多的努力來獲取HystrixCircuitBreaker
每個命令的底層對象,這可以讓您檢查isOpen()
以獲取每個斷路器的當(dāng)前狀態(tài)。
添加回答
舉報