熔斷器 Hystrix 源碼解析 —— 調試環境搭建

摘要: 原創出處 www.iocoder.cn/Hystrix/bui… 「芋道源碼」歡迎轉載,保留摘要,謝謝!git

本文主要基於 Hystrix 1.5.X 版本 github


🙂🙂🙂關注微信公衆號:【芋道源碼】有福利: spring

  1. RocketMQ / MyCAT / Sharding-JDBC 全部源碼分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文註釋源碼 GitHub 地址
  3. 您對於源碼的疑問每條留言將獲得認真回覆。甚至不知道如何讀源碼也能夠請教噢
  4. 新的源碼解析文章實時收到通知。每週更新一篇左右
  5. 認真的源碼交流微信羣。

1. 依賴工具

  • Gradle
  • JDK
  • IntelliJ IDEA

推薦 Spring Cloud 書籍緩存

2. 源碼拉取

從官方倉庫 github.com/Netflix/Hys… Fork 出屬於本身的倉庫。爲何要 Fork ?既然開始閱讀、調試源碼,咱們可能會寫一些註釋,有了本身的倉庫,能夠進行自由的提交。😈微信

使用 IntelliJ IDEAFork 出來的倉庫拉取代碼。在項目路徑下,在命令行執行 ./gradlew 命令,Gradle 會下載依賴包,可能會花費一些時間,耐心等待下。其間可能會出現由於網絡緣由( 我相信你懂的 ),可能會出現失敗的狀況,淡定,從新執行上述命令直到成功。此刻,你就是一個 while(true) 的小強。網絡

本文基於 master 分支。架構

3. 運行示例

hystrix-examples 子項目下,提供了大量的示例,以下圖:mvc

  • basic 包 :針對 Hystrix 每一個特性提供小的單元測試示例。你能夠從 CommandHelloWorld 開始嘗試。
  • demo 包 :結合實際場景的實戰小例子。運行入口爲 HystrixCommandDemo 或者 HystrixCommandAsyncDemo 。恩,聰慧如你,從名字能看出它們的區別點。

可能有部分同窗對 Hystrix 的特性瞭解的不是很清晰,筆者推薦以下文章:運維

另外,筆者也整理了下 Hystrix 的特性以下( 可能不是很嚴謹,主要輔助理解 ) :異步

  • 斷路器機制
    • 計算線路健康度
  • Fallback ( 失敗回退 )
  • 資源隔離
    • 方式
      • 線程池
      • 信號量
    • 依賴隔離
  • 執行模型
    • 同步執行
    • 異步執行
    • Reactive模式執行
      • observe
      • toObservable
  • 運維平臺
    • 基礎 Dashboard
    • 整合 Turbine
  • 緩存
  • 請求合併( HystrixCollapser )

4. 彩蛋

爲了顯得本文的誠意( 真的不是水更 ),友情提示以下:

Hystrix 基於 RxJava 實現,因此筆者推薦閱讀以下文章 :

可能一開始理解會比較困難,保持耐心,你即將打開一個新的世界。對了,變換( #lift(Operator) ) 會是一個難點,我相信你能夠理解。


胖友,分享一波朋友圈可好!

對了,這是一個系列文,因此,千萬不要錯過。

相關文章
相關標籤/搜索