人工智慧專案---Hytricx的理解以及在專案中的使用
阿新 • • 發佈:2018-12-14
從Hytricx的意義來看是豪豬,一種具有防禦性的動物,從而保證了自身的安全,而在springcloud裡面Hytricx就是通過 @HytricxCommond 來定義熔斷機制以及在註解裡面定義 如果使用yml來配置必須在方法上加上這個註解,不然設定的超時時間不起作用 如果業務需要單獨的配置熔斷的方法 那就通過註解檢視原始碼 的方法看看用法,在配置檔案裡設定熔斷的key值****fallbackMethod來定義熔斷後執行的方法,使用簡單,而從原始碼的角度來分析,目前處於停止更新狀態,而且官網也推薦其他的替代工具,如果在專案中藥使用這個熔斷器,主要是為了在流量有限的情況下保證主要的功能可以正常使用,比如在上傳的功能中,保證的是上傳的功能是正常,而上傳之後的展示的列表可以提示使用者在快取中的狀態。
如果出現人臉入庫的操作feign消費單張入庫的操作傳送網路連線等的異常的情況之下,這時候可以通過設定fallback定義的異常的方法執行相應的邏輯,如果是併發上傳的量太大或者網路故障等也可以通過自身throw 一個異常來熔斷自身的服務
如果希望通過IDEA來自動提示Hystrix的properties的話可以通過檢視對應的註解的原始碼,從註解的原始碼獲取到定義的靜態屬性如設定超時的時間等
這裡大字型的說說 Hytrix裡面非常好用的屬性 這裡可以通過檢視原始碼可以知道里面的配置 ,先說現象,如果批量上傳高併發的體量太大這時候會出現自身的熔斷,但是過一段時間就可以恢復正常,或者錯誤率達到60%左右也會觸發自身的熔斷
circuitBreaker.requestVolumeThreshold
circuitBreaker.sleepWindowInMilliseconds //時間視窗,臨時邏輯主導的服務,主邏輯根據臨時邏輯的恢復時間來嘗試恢復
circuitBreaker.errorThresholdPercentage
短路開關,斷路器 對於預期可重複的故障可以使用重試機制 斷路器模式 把故障封裝在服務裡面 熔斷器的短路機有3種狀態 closed,open,half open