一、分布式系統(tǒng)的技術(shù)棧分析
分布式系統(tǒng)的出現(xiàn)是業(yè)務(wù)發(fā)展導(dǎo)致的最終結(jié)果,而由于業(yè)務(wù)的拆分,我們又被迫會衍生出更多的分布式需求來,以及應(yīng)對這些需求的技術(shù):
1、因為業(yè)務(wù)拆分的多,業(yè)務(wù)對應(yīng)的模塊之間就需要通信,為了保證通信的快速可靠,我們需要掌握分布式通信技術(shù)。
2、業(yè)務(wù)拆分的過多,每個模塊可能還需要搞集群,那么多服務(wù)器資源,為了能夠保證資源的精準(zhǔn)分配,我們還需要考慮分布式資源管理和負(fù)載調(diào)度技術(shù)。
3、業(yè)務(wù)拆分之后,模塊與模塊之間又需要對很多共享數(shù)據(jù)做訪問,為了保證安全完整的數(shù)據(jù)狀態(tài),我們也要用到分布式協(xié)調(diào)與同步技術(shù)。
4、到了業(yè)務(wù)拆分的階段,數(shù)據(jù)必然龐大,為了數(shù)據(jù)存儲的可靠,為了保證優(yōu)秀的數(shù)據(jù)讀寫性能,我們需要分布式存儲技術(shù)。
5、業(yè)務(wù)如此復(fù)雜,為了公司的發(fā)展,業(yè)務(wù)能繼續(xù)擴(kuò)大,就需要能更加精準(zhǔn)的營銷和運營,我們還需要對數(shù)據(jù)進(jìn)行實時、離線處理分析,此時,我們又得考慮分布式計算技術(shù)。
6、在業(yè)務(wù)拆分后,整體架構(gòu)出現(xiàn)了巨變,不可能再用以前集群方式的思維去考慮高可用,那么分布式的可靠性技術(shù)又要納入我們的掌握范疇。
二、分布式管理系統(tǒng)常用技術(shù)和應(yīng)用場景
1、consistent hashing:一致性哈希,解決數(shù)據(jù)均衡分布問題。
2、vector clock:時鐘向量,多版本數(shù)據(jù)修改。
3、Quorum W R>N[with vector clock]:抽屜原理,數(shù)據(jù)一致性的另一種解決方案。時鐘向量,多版本數(shù)據(jù)修改。
4、Merkle tree [with anti-entropy]:數(shù)據(jù)復(fù)制。
5、MVCC:copy-on-write與snapshot。
6、2PC/3PC:分布式事務(wù)。
7、Paxos:強(qiáng)一致性協(xié)議。
8、Symmetry and Decentralization:對稱性和去中心化。對稱性(symmetry)簡化了系統(tǒng)的配置和維護(hù),去中心化是對對稱性的延伸,可以避免master單點,同時方便集群scale out。
9、Map-Reduce:分而治之;移動數(shù)據(jù)不如移動計算。將計算盡量調(diào)度到與存儲節(jié)點在同一臺物理機(jī)器上的計算節(jié)點上進(jìn)行,這稱之為本地化計算,本地化計算是計算調(diào)度的一種重要優(yōu)化。
10、Gossip協(xié)議:節(jié)點管理。