服務的熔斷和降級的區別

2021-09-24 10:58:43 字數 799 閱讀 3106

熔斷:

舉個例子解釋,生活中每家每戶都在用電,小明家的電線因為故障導致了小明家停電了。而小李、小張家的電是正常使用的。電力公司沒有因為小明家有故障線路而停掉其他人家的電,同時小明家沒有使用有故障的電路的電。這時即為熔斷。熔斷的目的是當a服務模組中的某塊程式出現故障後為了不影響其他客戶端的請求而做出的及時回應。

降級:舉個例子解釋,我們去銀行排隊辦理業務,大部分的銀行分為普通視窗、特殊視窗(vip視窗,老年視窗)。某一天銀行大廳排普通視窗的人巨多。這時特殊視窗貼出告示說某時刻之後再開放。那麼這時特殊視窗的工作人員就可以空出來去幫其他視窗辦理業務,提高辦事效率,已達到解決普通視窗排隊的人過的目的。這時即為降級,降級的目的是為了解決整體專案的壓力,而犧牲掉某一服務模組而採取的措施。

兩者其實從有些角度看是有一定的類似性的:

目的很一致,都是從可用性可靠性著想,為防止系統的整體緩慢甚至崩潰,採用的技術手段;

最終表現類似,對於兩者來說,最終讓使用者體驗到的是某些功能暫時不可達或不可用;

粒度一般都是服務級別,當然,業界也有不少更細粒度的做法,比如做到資料持久層(允許查詢,不允許增刪改);

自治性要求很高,熔斷模式一般都是服務基於策略的自動觸發,降級雖說可人工干預,但在微服務架構下,完全靠人顯然不可能,開關預置、配置中心都是必要手段;

而兩者的區別也是明顯的:

觸發原因不太一樣,服務熔斷一般是某個服務(下游服務)故障引起,而服務降級一般是從整體負荷考慮;

管理目標的層次不太一樣,熔斷其實是乙個框架級的處理,每個微服務都需要(無層級之分),而降級一般需要對業務有層級之分(比如降級一般是從最外圍服務開始)

(總結參考來自:

服務降級與熔斷的區別

下面通過乙個日常的故事來說明一下什麼是服務降級,什麼是熔斷。故事的背景是這樣的 由於小強在工作中碰到一些問題,於是想請教一下業界大牛小壯。於是發生了下面的兩個場景 小強在拿起常用手機撥號時發現該手機沒有能夠撥通,所以就拿出了備用手機撥通了某a的 這個過程就叫做降級 主邏輯失敗採用備用邏輯的過程 由於...

服務降級 熔斷 限流的區別

系統將某些不重要的業務或介面的功能降低,可以只提供部分功能,也可以完全停到所有所有不重要的功能。降級的思想是丟車保帥。常見降級方式 降級是應對系統自身的故障,而熔斷的目的是應對外部系統的故障。比如a服務的x功能依賴b服務的某個介面,當b服務介面響應很慢時,a服務x功能的響應也會被拖慢,進一步導致了a...

白話 服務降級與熔斷的區別

雖然之前在 spring cloud構建微服務架構 系列文章中介紹了hystrix服務降級與hystrix斷路器的概念。但是,還是一直收到這樣的提問 降級與熔斷區別是什麼?並且在很多交流過程中,發現有不少童鞋對降級和熔斷的概念有混淆的情況。所以,這篇博文準備換一種方式來說說這兩個概念,以幫助讀者更好...