業務君:什么?down掉了!


寫在前面的話
業務復雜,做業務的產品更復雜。
越是復雜的業務產品,所依賴的外圍系統可能就越多。
假如突然有一天,依賴的外圍系統掛掉了,少俠你是否給業務留了后路?


可能前面的話聽上去有點暈,到底啥意思?
來,舉個栗子??。

饅頭的體檢.jpg

假如今天饅頭去醫院體檢,需要經歷的體檢流程“1-2-3-4”如上圖所示。但這里有個變態規則就是:必須按流程順序完成1-4的所有環節,體檢才算成功。(翻譯過來就是說:每完成一步,1-4的應用系統會將數據返回給到體檢系統,并觸發體檢系統向下一應用系統請求數據。當體檢系統依次向4個應用系統分別請求數據成功后,則記為“體檢成功”。如果一旦體檢系統某次請求數據失敗,體檢系統則不會繼續向下一應用系統請求數據,處于“體檢進行中”的狀態)

假如此時,血常規檢查的儀器掛掉了,而down機時間又不確定。但因為變態的規則,導致饅頭我只得停留在第2步“血常規檢查”,體檢因此無法繼續進行下去。同時隨著down機時間的延長和醫院體檢人數的增加,停留在第2步而無法繼續進行下去的人越來越多,情緒上已處于失控狀態;但此時院方又束手無策,因為這是體檢系統寫死的規則,不可更改。所以,此時此刻只有2種解決方案:要么告訴大家耐心等待,直至血常規檢查的儀器恢復正常,要么告知大家該回家的回家,該上班的上班,改日再來醫院體檢。我相信如果少俠是體檢的同學,那此時的內心早已是崩潰的...

大家發現沒有,正是因為產品設計上沒有考慮到異常流,因此導致在異常情況發生時埋下了這個天坑。由此可見,做產品留后路非常重要!

留后路,什么意思?

還是剛才的例子,假如我在設計體檢系統的產品時,讓技術同學寫一串代碼:“if 血常規檢查系統down機所引起的數據請求失敗,則直接進行下一應用系統的數據請求。”大家發現沒有,此時體檢系統就會直接跳過血常規數據的請求,來請求心電應用系統的數據。換言之,也就是說我可以不用作血常規檢查直接進行心電圖檢查,到最后體檢依然是成功的。可能唯一的問題就在于我拿到的體檢報告中,血常規這一項是沒有檢查結果的。不過假如體檢的同學不在乎,那這就不叫問題。

那其實剛剛所說的就叫異常降級策略。比如上述設計中,當我們的系統調用外圍系統出現超時等報錯情況下,可以讓我們的系統吃掉異常的情況繼續業務,這就是一種異常降級策略。當然了,一般來說是有3種不同程度的異常降級策略,但這些是需要視業務的重要性來決定究竟采取何種策略。

降級策略.jpg

現在我們以醫院的體檢系統產品為例來解釋一下上圖的含義。在1-4的體檢流程中,第一步非常重要,原因是在信息沒有注冊的情況下,這個體檢是沒有意義的,因為到頭來不知道在為“誰”做體檢。所以,由此可見“信息注冊”的業務重要性相對其他環節要高,因此如果一旦系統請求信息注冊的數據有問題,就默認攔截不要業務下去了。那這里的高風險又是什么意思?因為一旦攔截就不能繼續業務,比如信息無法注冊導致tmd我就不能體檢了,醫院的體檢就不能搞起了(至少是在此時此刻和未來的一段時間內),所以對業務來說一定是高風險的。那像“打印體檢報告”這一環節,業務上的重要性就低很多,因為此時此刻我不能打印體檢報告,我照樣可以在手機或pc上查看到體檢報告的數據,再不濟可以改日來醫院打印體檢報告。所以,如果體檢報告的打印出現了問題,可以采取直接放行跳過的降級策略,最終是能夠保證體檢成功的,那這里所帶來的業務風險就幾乎為0了。

不過,大家有沒有注意到無論采取何種異常降級策略,我們的系統每跑一次業務都是要去請求一次外圍系統,來看看外圍系統是否down機,如果down機就采取相應的異常降級策略,其實這樣“每跑一次業務就去請求一次”的處理效率是很低的。

因此也就有了主動降級策略的概念,什么意思?就是我可以在后臺配置一個開關來主動控制系統是否直接跳過向外圍系統請求的過程。假設我已經監測到“信息注冊”的系統down掉了,那我就可以直接推開關來命令體檢系統在接下來的一段時間內不再去請求該外圍系統,這樣就大大提升了業務進行的效率,原因是我干掉了向down機系統進行不必要的請求詢問的時間。

所以回到體檢這件事,如果我是設計者,就會采取相應的異常降級策略和主動降級策略。第1步信息注冊的異常降級策略是“默認攔截”,第2步、第3步的血常規檢查和心電檢查的異常降級策略是“日常攔截,緊急放行”,而第4步體檢報告打印的異常降級策略就是“默認放行”。另外,我還會在后臺做三個開關來對第2步、第3步、第4步實施主動降級策略。

這樣的話,即便哪天業務君對饅頭哭訴機器突然掛掉的悲傷故事時,饅頭我依然可以微笑地看著業務君并溫柔地對他說:“別怕,有我!你看,我給業務留了后路...”

我叫饅頭,一名90后互聯網產品經理。如果喜歡我,一定記得關注我。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容