|
首先看Soul中Sebtinel可以配置的項目
 對應(yīng)的配置的含義 degrade count:熔斷閾值 whether to open the degrade (1 or 0):是否開啟熔斷,1開啟 0關(guān)閉 degrade type:熔斷類型、熔斷策略,slow call ratio(秒級RT) 、 exception ratio(異常比例)、 exception number strategy(分鐘級異常數(shù)) degrade window size:降級窗口期大小,單位s control behavior: warm up(預(yù)熱/冷啟動方式,流量緩慢增加)、 constant speed queuing (勻速排隊)、 preheating uniformly queued grade count:限流閾值 whether control behavior is enabled (1 or 0):是否開啟限流,1開啟 0關(guān)閉 grade type:限流閾值類型 ,QPS 、number of concurrent threads(當前線程數(shù))
但是從界面和參數(shù)代表的意思可以看到,實際上熔斷和限流的開關(guān)開啟對其他參數(shù)的設(shè)置是有影響的但是界面彈窗卻沒有體現(xiàn)這一點,按照理想狀態(tài)應(yīng)該是開啟了熔斷開關(guān)再去顯示其他的熔斷參數(shù),同樣的限流也是這樣的。另外對于界面上使用數(shù)字調(diào)整 whether to open the degrade 的值且并未對值得大小做限制的情況。我覺得還是需要調(diào)整的。
??梢钥吹酱a中即是開啟熔斷或者限流的開關(guān)之后才會去加載相關(guān)配置 Soul網(wǎng)關(guān)限流插件Resilience4J掃盲同樣的首先看Soul網(wǎng)關(guān)中Resilience4J可以配置的項目
 token filling period (ms):刷新令牌的時間間隔,單位ms,默認值:500。 token filling number:每次刷新令牌的數(shù)量,默認值:50。 control behavior timeout (ms):熔斷服務(wù),對外停止服務(wù)持續(xù)時間,單位ms circuit enable:是否開啟熔斷,0:關(guān)閉,1:開啟,默認值:0。 circuit timeout (ms):熔斷超時時間,請求服務(wù)響應(yīng)超過此時間,則觸發(fā)熔斷,單位ms,默認值:30000。 fallback uri:降級處理的uri。 sliding window size:滑動窗口大小,默認值:100。 sliding window type:滑動窗口類型,0:基于計數(shù),1:基于時間,默認值:0。 enabled error minimum calculation threshold: 開啟熔斷的最小請求數(shù),超過這個請求數(shù)才開啟熔斷統(tǒng)計,默認值:100。 degrade opening duration:熔斷器開啟持續(xù)時間,單位ms,默認值:10 half open threshold:半開狀態(tài)下的環(huán)形緩沖區(qū)大小,必須達到此數(shù)量才會計算失敗率,默認值:10。 degrade failure rate:錯誤率百分比,達到這個閾值,熔斷器才會開啟,默認值50。

 可以看到這里也是熔斷器開啟了才會去加載某些配置,可以看到,這里的兩個1的魔數(shù),實際上可以被修改為固定的參數(shù)值類似Sentinel中設(shè)置的。當然我感覺可能設(shè)置成true或者false更好,期待有序優(yōu)化。另外還有一個參數(shù)可以關(guān)注的就是半開狀態(tài)這個參數(shù),因為不理解這個半開狀態(tài)的意思。所以在網(wǎng)上具體的查了一下,描述如下
CircuitBreaker的狀態(tài)轉(zhuǎn)換通過一個有限狀態(tài)機來實現(xiàn)的,有3種常用狀態(tài): 關(guān)閉(CLOSED)、打開(OPEN)、半開(HALF_OPEN)和2種特定狀態(tài):不可用(DISABLED)、強制打開(FORCE_OPEN) CLOSED ==> OPEN:單向轉(zhuǎn)換。當請求失敗率超過閾值時,熔斷器的狀態(tài)由關(guān)閉狀態(tài)轉(zhuǎn)換到打開狀態(tài)。失敗率的閾值默認50%,可以通過設(shè)置CircuitBreakerConfig實例的failureRateThreshold屬性值進行改變。 OPEN <==> HALF_OPEN:雙向轉(zhuǎn)換。打開狀態(tài)的持續(xù)時間結(jié)束,熔斷器的狀態(tài)由打開狀態(tài)轉(zhuǎn)換到半開狀態(tài)。這時允許一定數(shù)量的請求通過,當這些請求的失敗率超過閾值,熔斷器的狀態(tài)由半開狀態(tài)轉(zhuǎn)換回打開狀態(tài)。半開時請求的數(shù)量是由CircuitBreakerConfig實例的ringBufferSizeInHalfOpenState屬性值設(shè)置的。 HALF_OPEN ==> CLOSED:如果請求失敗率小于閾值,則熔斷器的狀態(tài)由半開狀態(tài)轉(zhuǎn)換到關(guān)閉狀態(tài)。 DISABLED和FORCE_OPEN這2種狀態(tài)僅僅是表示退出上面3種狀態(tài)時的臨界狀態(tài)標識,這2種狀態(tài)不會被記錄到統(tǒng)計指標中,也不會發(fā)送狀態(tài)轉(zhuǎn)換事件。 如下圖所示轉(zhuǎn)換關(guān)系

我認為的可優(yōu)化項
|