當前位置:編程學習大全網 - 源碼下載 - SpringBoot如何整合Hystrix

SpringBoot如何整合Hystrix

在application.properties配置文件中加入如下配置:

將全局的默認超時時間由1s修改為3s,但是配置未起作用。

Archaius 默認支持兩種方式來加載本地的配置文件:

使用註解的方式,為方法添加hystrix斷路器。

在resources\config.properties中進行配置:

使用Hystrix後,配置均會在 com.netflix.hystrix.AbstractCommand#AbstractCommand 類中組裝。

[圖片上傳失敗...(image-a9070e-1612084543977)]

註:需要註意的是,雖然在3個地方設置了 超時時間。但是只有4000ms的超時時間生效。

1. hystrix配置的優先級是怎麽樣的呢?

2. 如何為某個方法配置不同的hystrix策略?

優先級從低到高的配置:

註:全局配置是default的配置,而實例配置為commandKey配置。

默認情況下,Hystrix會使用 類名作為CommandGroup ,會使用 方法名作為CommandKey。 可以使用commandKey進行個性化的配置。參考1.3 如何使用

[圖片上傳失敗...(image-95f991-1612084543977)]

表示HystrixCommand.run()的執行時的策略,有以下兩種策略:

以下屬性控制 HystrixCommand.getFallback() 如何執行,這些屬性對隔離策略 THREAD SEMAPHORE 都起作用。

此屬性設置從調用線程允許Hystrix.getFallback()方法允許的最大並發請求數,如果達到最大的並發量,則接下來的請求都會被拒絕並且拋出異常。

控制斷路器的行為。

默認值20。若是在10s(窗口時間)內,只收到19個請求且都失敗了,則斷路器也不會開啟。

斷路器跳閘後,在此值的時間內,hystrix會拒絕新的請求,只有過了這個時間,斷路器才會打開閘門。默認值5000ms

設置失敗百分比的閾值,如果失敗比率超過這個值,則斷路器跳閘並且進入fallback狀態。默認值:50

如果這個屬性true強制斷路器進入開路(跳閘)狀態,它將拒絕所有請求。

此屬性優先於circuitBreaker.forceClosed。默認值false

如果設置true,則強制使斷路器進行關閉狀態,此時會允許執行所有請求,無論是否失敗的次數達到circuitBreaker.errorThresholdPercentage值。默認值:false。

捕獲和HystrixCommand以及HystrixObservableCommand執行信息相關的配置屬性。

Hystrix保留斷路器使用和發布指標的時間。默認值:10000

metrics.rollingStats.timeInMilliseconds % metrics.rollingStats.numBuckets == 01

如:10000/10、10000/20是正確的配置,但是10000/7錯誤的。默認值:10

註:在高並發的環境裏,每個桶的時間長度建議大於100ms。

該屬性控制HystrixCommand使用到的Hystrix的上下文。

默認值:true

表示是否開啟日誌,打印執行HystrixCommand的情況和事件。默認值true

設置請求合並請求。

默認值:Integer.MAX_VALUE

默認值:10

是否對HystrixCollapser.execute() 和 HystrixCollapser.queue()開啟請求緩存

默認值:true

默認值:10

在1.5.9中添加。此屬性設置最大線程池大小。這是在不開始拒絕HystrixCommands的情況下可以支持的最大並發數量。請註意,此設置僅在您設置時生效allowMaximumSizeToDivergeFromCoreSize。在1.5.9之前,核心和最大尺寸始終相等。

默認值:10

設置最大的BlockingQueue隊列的值。如果設置-1,則使用SynchronousQueue隊列(無限隊列)。如果設置正數,則使用LinkedBlockingQueue隊列。默認值:-1

因為maxQueueSize值不能被動態修改,所有通過設置此值可以實現動態修改等待隊列長度。即等待的隊列的數量大於queueSizeRejectionThreshold時(但是沒有達到maxQueueSize值),則開始拒絕後續的請求進入隊列。

默認值:5

註:如果設置-1,則屬性不啟作用。

設置線程空閑多長時間後,釋放(maximumSize-coreSize )個線程。默認值1(分鐘)

設置allowMaximumSizeToDivergeFromCoreSize值為true時,maximumSize才有作用

默認值:false

官網——Hystrix的參數配置

Hystrix常用功能介紹

Hystrix源碼解析--從原生的lib開始使用hystrix(壹)

  • 上一篇:如何在Eclipse中用pydev調試Django
  • 下一篇:炒股短線暴利的關鍵是什麽?該註意什麽?
  • copyright 2024編程學習大全網