1.1高并發(fā)設(shè)計原則
無狀態(tài)
方便水平擴展。一般是應(yīng)用無狀態(tài),配置文件有狀態(tài)。
拆分
系統(tǒng)維度:根據(jù)業(yè)務(wù)邏輯拆分(比如商品,購物車,訂單)
讀寫維度:讀操作和寫操作
代碼模塊維度:比如我們的service和dao層
服務(wù)化
SOA,大家可以很容易找到比較詳細的說明
消息隊列
數(shù)據(jù)異構(gòu)
對于某些場景需要聚合很多表,這些表又屬于不同的服務(wù),我們可以異構(gòu)一張表專門處理這個場景。
例如通過消息來將變化的數(shù)據(jù)寫入異構(gòu)表。
緩存
并發(fā)處理
將不相互依賴的多個動作并發(fā)處理。
1.2高可用設(shè)計原則
降級
可降級的多級讀服務(wù):例如服務(wù)降級為只讀本地緩存,只讀分布式緩存,只讀默認的降級數(shù)據(jù)等。
業(yè)務(wù)降級
高并發(fā)的情況下,比如促銷期間保障用戶下單和支付優(yōu)先,保證數(shù)據(jù)的最終一致性即可。可以將一些同步動作改成異步進行。
限流
防止惡意請求流量,惡意攻擊,或者防止流量超過峰值。
比如惡意請求只訪問到cache數(shù)據(jù)