tft每日頭條

 > 圖文

 > 熔斷與降級對照表

熔斷與降級對照表

圖文 更新时间:2024-12-19 17:59:40

筆者在工作中,主要維護所在bg的營銷活動的列表,活動的列表像商詳頁或團詳頁一樣需要聚合大量服務提供的數據,而且作為後兩者的入口,活動列表出不得任何閃失,否則結局必是災難性的。每一次的大促活動能否平安度過,取決于平日準備時對這些下遊服務更好地把控。熔斷降級作為最基本和有效的手段,保證了服務的柔性可用,提高系統整體的可用性與穩定性。接下來就談談熔斷和降級。

先簡單一句話概括,降級就是在調用的下遊服務A出現問題(常見超時),提供PLAN-B,返回的效果可能沒有服務A好,但是聊勝于無。而熔斷器的存在就是要保障何時走到降級方法,何時恢複,以什麼樣的策略恢複。

接下來,我想舉個例子,詳細說明熔斷降級的作用和必要性。

就用我們公司最有意思的神秘民間組織,美團外賣舉例。

熔斷與降級對照表(談談熔斷與降級)1

如上圖,我們公司在該地區一共有4個外賣小哥,編号0-3;該地有6家流行餐廳,幾乎是用戶必點。編号從A-F。故事開始前,我們做如下假定:

(1)外賣火爆,幾乎外賣小哥每次在外都能接到不止一單,且是不同的餐廳;

(2)外賣小哥都是耿直的人,不取完本次接單的幾家餐廳,不輕易送餐。

一切看起來很和諧,直到有一天,餐廳A出事了,主廚的大叔失戀了,出餐的速度大降。每個要去餐廳A取餐的小哥都要花費更長的時間在A等餐。而且餐廳A越流行,出餐速度越慢,排隊等待的小哥就會越多。在上圖中,最後4個外賣小哥,有3個都排隊在等A餐廳的飯食。這有兩點直接影響:

(1)不光是A,其他餐廳單子也還沒有配送,用戶吃不到A的飯,就連其他用戶點的B、C、D的飯也不能配送,差評,卸載,美團一生黑;

(2)3/4的外賣小哥處于低效率地排隊等待,而不是送餐,降低了整個公司在該地區的配送效率,老王坐不住了。

然而,正如江湖傳言,美團外賣是個神秘的組織,有一天,一個機智的小哥,橫空出世,改變了整個行業的布局。

熔斷與降級對照表(談談熔斷與降級)2

小哥在餐廳A親自操刀,很快就做完後,送餐了。用戶收到熱乎乎的飯菜,吃起來沒有以前的好吃,但也覺察不出任何異樣,不會投訴;整個地區的小哥又重新流通起來,恢複到大叔失戀前的配送效率。

後來,在公司的内部總結中。發現不光是A餐廳的大叔會失戀,C餐廳D餐廳的大叔們也偶爾失戀,影響出餐速度。後來公司和這些餐廳們商量,為更好的規範化出餐流程,各餐廳新添加二叔,二叔廚藝一般,請二叔各餐廳花費成本不高,所以紛紛表示贊同。

在實踐的過程中,小哥和大叔二叔們約定,如果在規定時間和次數,大叔不能按時出餐,那麼二叔替代大叔,接相同的單,用同樣的鍋;大叔的出餐速度會被定期檢查,是否恢複了正常水平,恢複了之後,單子慢慢還由大叔下廚。

現在,我們來對應下關系。

美團外賣大本營——容器,常見的如tomcat,jetty的線程池

外賣小哥——線程

餐廳——服務接口

二叔——降級方法

大叔到二叔的切換——熔斷

恢複大叔下廚——熔斷降級的恢複策略。

熔斷保證了下遊服務在出錯率達到阈值時,上遊調用切換到降級方法,提供有損服務,避免服務的級聯失敗,影響整個系統的穩定性。熔斷的時機,取決于業務的實際場景和流量大小,不要過高,也不要過低;恢複的策略,其核心是恢複的速率,不要過快也不要過慢。一句廢話,看需求。

在公司,我們有自己的故障演練分析防護的平台,由于沒開源,不便過多閑話。在開源社區,也有很多相應的産品,比較推薦的,也是目前使用較為廣泛的是NetFlix的Hystrix,Hystrix是個完善的容錯庫,實現了熔斷降級、線程隔離、限流等多種功能,開箱即用,有需要的朋友速速入手吧。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved