異步化與緩存兩個技術都與系統的性能有很大的關系,當今分布式應用架構中,如果不能很好地掌握這兩項技術,所設計出的應用将很難有優質的性能表現。本章将介紹阿裡集團是如何使 用這兩種技術的。
本次分享介紹淘寶平台中典型的交易場景,描述在分布式服務架構中,如何通過業務流程異步化,即通過服務異步調用的方式讓業務流程中業務邏輯上允許同步執行的服務同時被調 用,進而解決了大量遠端服務線性調用帶來的性能問題。
舉例來說, 淘寶的訂單建立流程需要調用超過200 個服務,對于有嚴格先 後調用關系的服務保持順序執行,對于能夠同步 執行的所有服務均采用異步化方式處理。阿裡巴 巴内部使用消息中間件的方式實作了業務異步化。

提高了服務的并發處理,進而大大減少整個業務請求 處理所花的時間。
再舉個例子:比如P2P平台進行交易系統改造中的 客戶還款場景為例。當一名借款人在該平台上成 功借款後,例如借款金額為10萬元,共有500人 提供了借款,分為6期還款,每個月的最後一天 為該借款的當月還款日。
1)當使用者在平台上點選了“還款”按鈕後, 會生成一條還款啟動的消息,發送到消息服務 上。
2)“還款開始”程式接收到此消息後,首先 執行“找到未還款的計劃”,并同時進行“寫入還款 請求”和發送“還款計劃計算消息”到消息服務上。
3)“還款計算”接收到還款計劃計算消息 後,進行還款總額的計算,并同時進行占款和發 起支付流程的消息到消息服務上。
4)“還款計劃分派”接收到支付流程的消息 後,在給平台的賬号轉賬的同時,發送分期支付 消息,這裡的消息會針對每一位還款詳單中對應 的還款人生成還款計劃處理消息,這個處理是此 次改造方案的核心,将之前在一個事務中處理 500次還款處理的操作拆分為500個不同的事務。
5)“還款計劃處理”程式在接收到每一個還 款詳單支付請求的消息後,進行詳單查找,計算 還款詳單,最後同時進行從借款人賬戶中進行扣 占款以及發送還款詳單處理的請求消息。
6)最後則是“還款詳單”接收到“詳單處理”請 求的消息後,依次進行給還款人賬戶加錢,更新 詳單表資訊等操作。
當然,在此過程中,一定要考慮到程式異常 時對業務的復原或重試機制,保障整個還款過程 結果的最終一緻。通過以上對還款事務異步化的 處理,在不影響業務體驗的前提下,整個平台對 于還款的處理能力相比之前提升了20倍以上,因 為大大減少了資料庫記錄的鎖沖突,系統在還款 高峰時期時使用者體驗基本跟平時沒有太大的差異。
****************************************************************************
【如果文字看累了,可b站搜尋“沙皮狗2021”,用聽的方式領略知識的魅力】
傳送門 :https://space.bilibili.com/407643589
【微信公衆号】:沙皮狗2021