护士资格证延续注册WEB服务调用失败_服务熔断
熔斷機制是應對服務雪崩效應的一種微服務鏈路保護機制,當扇出鏈路的某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的調用,快速返回”錯誤”的響應信息。當檢測到該節點微服務響應正常后恢復調用鏈路,在SpringCloud框架機制通過Hystrix實現,Hystrix會監控微服務見調用的狀況,當失敗的調用到一個閾值,缺省是5秒內20次調用失敗就會啟動熔斷機制,熔斷機制的注解是@HystrixCommand
創建項目
1、添加依賴
<project2、修改全局配置文件
spring.application.name=eureka-consumer-ribbon-breaker server.port=9010 #設置服務注冊中心地址,指向另一個注冊中心 eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/3、業務層代碼
@Service4、啟動類
5、測試,啟動主程序,然后啟動provider服務進行測試訪問。
這是在10秒內一直異常訪問的效果,此時已經達到要求,啟動熔斷器
啟動熔斷器后再次訪問,走的是默認5秒
hystrix工作原理
流程說明:
1:每次調用創建一個新的HystrixCommand,把依賴調用封裝在run()方法中.
2:執行execute()/queue做同步或異步調用,可參考文檔。
Netflix/Hystrix?github.com3:判斷熔斷器(circuit-breaker)是否打開,如果打開跳到步驟8,進行降級策略,如果關閉進入步驟4.
4:判斷線程池/隊列/信號量是否跑滿,如果跑滿進入降級步驟8,否則繼續后續步驟.
5:調用HystrixCommand的run方法.運行依賴邏輯
5a:依賴邏輯調用超時,進入步驟8.
6:判斷邏輯是否調用成功
6a:返回成功調用結果
6b:調用出錯,進入步驟8.
7:計算熔斷器狀態,所有的運行狀態(成功、失敗、拒絕、超時)上報給熔斷器,用于統計從而判斷熔斷器狀態.
8:getFallback()降級邏輯.
以下四種情況將觸發getFallback調用:
(1):run()方法拋出非HystrixBadRequestException異常。
(2):run()方法調用超時
(3):熔斷器開啟攔截調用
(4):線程池/隊列/信號量是否跑滿
8a:沒有實現getFallback的Command將直接拋出異常
8b:fallback降級邏輯調用成功直接返回
8c:降級邏輯調用失敗拋出異常
9:返回執行成功結果
總結
以上是生活随笔為你收集整理的护士资格证延续注册WEB服务调用失败_服务熔断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php getdefaultvalue,
- 下一篇: 初次使用Apache、ip地址、防火墙、