解決Hystrix Dashboard 一直是Loading ...的情況


Hystrix是什么

Hystrix 能使你的系統在出現依賴服務失效的時候,通過隔離系統所依賴的服務,防止服務級聯失敗,同時提供失敗回退機制,更優雅地應對失效,並使你的系統能更快地從異常中恢復。

Hystrix能做什么?

  • 在通過第三方客戶端訪問(通常是通過網絡)依賴服務出現高延遲或者失敗時,為系統提供保護和控制
  • 在分布式系統中防止級聯失敗
  • 快速失敗(Fail fast)同時能快速恢復
  • 提供失敗回退(Fallback)和優雅的服務降級機制
  • 提供近實時的監控、報警和運維控制手段

Hystrix設計原則?

  • 防止單個依賴耗盡容器(例如 Tomcat)內所有用戶線程
  • 降低系統負載,對無法及時處理的請求快速失敗(fail fast)而不是排隊
  • 提供失敗回退,以在必要時讓失效對用戶透明化
  • 使用隔離機制(例如『艙壁』/『泳道』模式,熔斷器模式等)降低依賴服務對整個系統的影響
  • 針對系統服務的度量、監控和報警,提供優化以滿足近實時性的要求
  • 在 Hystrix 絕大部分需要動態調整配置並快速部署到所有應用方面,提供優化以滿足快速恢復的要求
  • 能保護應用不受依賴服務的整個執行過程中失敗的影響,而不僅僅是網絡請求

Hystrix實現原理-艙壁模式

  • 貨船為了進行防止漏水和火災的擴散,會將貨倉分隔為多個,當發生災害時,將所在貨倉進行隔離就可以降低整艘船的風險。

 

 

 

Hystrix dashboard 測試

今天根據他人博客上介紹的Spring Cloud,自己嘗試敲了下代碼。但走到Hystrix實現熔斷機制以及監控熔斷信息的時候遇到一個問題:Hystrix 自帶了一個dashboard,獲取監控的時候界面一直是Loading...沒有任何反應,如圖:

代碼請參考https://blog.csdn.net/column/details/15197.html

 

點擊Monitor Stream之后就跳到下面的界面

 

IDEA編輯工具的控制台打印

 

瀏覽器F12 沒有任何報錯的信息

 

如果直接訪問http://localhost:8764/hystrix.stream 則界面一直會打印ping,但沒有結果返回:

 

 

無意中的測試,發現這個Loading...是一直在等待負載均衡的提供方要去消費服務,即訪問負載均衡服務器,去調用客戶端,如果有數據響應則監控界面就會有圖形數據展示:

如果想讓圖中的數據發生變化,則需要循環多次的去訪問負載均衡的提供方,讓其消費服務,以至於達到監控的目的。

此時再次訪問http://localhost:8764/hystrix.stream,則會有以下數據一直在瀏覽器中打印:

 

注:Hystrix DashBoard監控的服務都是要求有帶上熔斷端點的,即帶上@HystrixCommand注解的方法,調用沒有熔斷端點的方法沒法得到監控。

 

最后,附上一張圖形概要以供參考:

 

參考文章:https://www.cnblogs.com/hejianjun/p/8670693.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM