挑戰空中加油 1號店B2C電商系統演進之路

2021-09-17 02:57:39 字數 1614 閱讀 4298

\ 適當放棄一致性:在一些實時性要求不高的場合,我們適當放棄一致性要求。這樣就可以充分利用多種手段來提高系統吞吐量,例如頁面快取、分布式資料快取、資料庫讀寫分離、查詢資料搜尋索引化。\ 系統共用元件service化:隨著系統的分拆,各子系統間的重複**越來越多,增加了很多不必要的維護成本。為提高**的復用,降低維護成本,我們將多個子系統都需要用到的業務元件,進行了service化。例如:\

\ 中介軟體的研發使用:隨著子系統和service的增多,面臨很多共同的技術性挑戰。為降低應用系統人員的開發難度,我們在一些開源系統的基礎上,研發了多個適應我們的中介軟體系統。例如:esb平台(支援遠端服務、非同步訊息)、分布式快取、資料訪問層等。大大簡化了應用系統的開發。使用中介軟體後的總體示意圖如下:\

\ 系統自動化:為進一步提高運營效率,我們採用了很多自動化的設計理念,儘量減少人工配置的需要。例如:根據比價系統和策略自動調整商品**,根據投放效果和策略自動調整廣告投放,根據庫存和銷售**自動安排採購等。\\

1) 實施前舊系統狀態與結構:\

\2) 舊系統面臨的問題:

\

\result = getfrommemcached(key);\if (result != null) return result;\result = getfromdatabase(...);\writememcached(key, timeout);\return result;\
\ cache 管理困難: 失效時間**分散,不便管理。不同系統還容易key衝突。\ 資料分庫和讀寫分離**繁瑣,某庫故障時無法自動切換到可用庫上。\ 系統service化改造困難: 原web層與dao層**耦合度高,不易實現service化。拆分粒度太細連線數上公升和故障概率增加,粒度太粗又效果不佳。\ 無法充分發揮cache潛能:某個cache項失效時,因前端的併發性會導致多次資料庫請求。到期cache無法延期使用,資料庫故障時應用系統就立即故障。\\

3) 備選方案的優缺點:\

4) yhddal 1.0設計方案:\

\5) 實施與公升級過渡步驟:\

通過一系列的方法與手段,1號店基本實現了從小系統向大系統演變,使得1號店的系統能夠支撐大量高併發的訪問,同時滿足了業務的需要。

\\ 韓軍,2023年出生。2023年畢業於上海交通大學計算機系, monash mba\

感謝晁曉娟對本文的審校。

\

(數學)空中加油問題

一架飛機載滿油可繞地球飛行半圈,飛機與飛機之間可以相互加油,若全球只有乙個基地,每架起飛的飛機都必須回到基地 直接返回或繞一圈返回 問至少要起落幾架次飛機,才能保證至少有一架飛機安全繞地球飛行一圈,並寫出空中加油方案?答案 4架飛機 6架飛機的油 有兩種方法,假設四架飛機分別為abcd,a繞地球飛行...