現在的業務發展進度,單體應用基本要進博物館了!
分佈式系統,從設計、到開發、到運維,都讓人頭大!微服務的理念也越來越普及,對於沒有自我研發底層基礎設施的中小型企業來說,當前Spring Cloud是個很好的選擇。
這裏就不細究分佈式、SOA、微服務這些概念了。
先從提到分佈式時經常碰到的一些概念說起,進行一個粗略的整理。
個人習慣,XMind搞起!
1. 分佈式相關概念
2. 分佈式數據
3. 分佈式相關理論
3.1 CAP
3.2 BASE
4. 共識性問題
4.1 PAXOS
4.2 RAFT
5. 分佈式事務
所謂分佈式事務,是指事務跨越多個節點。可能是跨越多個數據庫,也可能是跨越多個服務節點。即使如此,也要滿足事務的ACID特性。
分佈式事務,常見有如下幾種解決方案:
5.1 兩階段提交2PC
5.2 事務補償TCC
5.3 本地消息表
5.4 事務消息
6. 分佈式緩存
分佈式緩存,其實根本上來講,還是要解決緩存命中率的問題!
高併發的系統中,緩存命中率要達到90%以上,纔能有效減輕數據庫的壓力,保證系統的高可用。
那麼,爲了保證緩存的命中率,就要解決使用緩存時經常遇到的幾個問題:
6.1 緩存穿透
6.2 緩存雪崩
6.3 緩存預熱
6.4 緩存更新
緩存更新,一方面是緩存的淘汰策略;另一方面是緩存的一致性。
淘汰策略比較簡單一些,一致性的保證就要分析一下數據庫更新和緩存更新的先後問題了(這個需要單講了)。