一、分布式系統的技術棧分析
分布式系統的(de)出(chu)現是業務(wu)(wu)發展導致的(de)最終(zhong)結果,而(er)由于業務(wu)(wu)的(de)拆分,我們(men)又被(bei)迫會衍生出(chu)更多的(de)分布式(shi)需求(qiu)來(lai),以及應對這(zhe)些需求(qiu)的(de)技(ji)術(shu):
1、因為業務拆分的多,業務對應的模塊之間就需要通信,為了保證通信的快速可靠,我們需要掌握分布式通信技術。
2、業務拆分的過多,每個模塊可能還需要搞集群,那么多服務器資源,為了能夠保證資源的精準分配,我們還需要考慮分布式資源管理和負載調度技術。
3、業務拆分之后,模塊與模塊之間又需要對很多共享數據做訪問,為了保證安全完整的數據狀態,我們也要用到分布式協調與同步技術。
4、到了業務拆分的階段,數據必然龐大,為了數據存儲的可靠,為了保證優秀的數據讀寫性能,我們需要分布式存儲技術。
5、業務如此復雜,為了公司的發展,業務能繼續擴大,就需要能更加精準的營銷和運營,我們還需要對數據進行實時、離線處理分析,此時,我們又得考慮分布式計算技術。
6、在業務拆分后,整體架構出現了巨變,不可能再用以前集群方式的思維去考慮高可用,那么分布式的可靠性技術又要(yao)納入我們的(de)掌(zhang)握范(fan)疇(chou)。
二、分布式管理系統常用技術和應用場景
1、consistent hashing:一致性哈希,解(jie)決(jue)數據(ju)均衡分布問題(ti)。
2、vector clock:時(shi)鐘(zhong)向量(liang),多版(ban)本數(shu)據修改。
3、Quorum W+R>N[with vector clock]:抽屜原理,數(shu)據(ju)一致性的另一種(zhong)解決(jue)方案。時鐘向(xiang)量(liang),多版本數(shu)據(ju)修改。
4、Merkle tree [with anti-entropy]:數據復(fu)制。
5、MVCC:copy-on-write與(yu)snapshot。
6、2PC/3PC:分(fen)布式事務(wu)。
7、Paxos:強(qiang)一致(zhi)性協議。
8、Symmetry and Decentralization:對稱性(xing)(xing)和(he)去(qu)中(zhong)心化。對稱性(xing)(xing)(symmetry)簡化了(le)系統的配(pei)置(zhi)和(he)維護,去(qu)中(zhong)心化是(shi)對對稱性(xing)(xing)的延伸(shen),可以避免master單點,同(tong)時方便集群scale out。
9、Map-Reduce:分而治之;移動數據(ju)不如移動計(ji)(ji)算(suan)。將(jiang)計(ji)(ji)算(suan)盡量調(diao)度到與存儲(chu)節(jie)點(dian)在同一臺(tai)物理(li)機器上的計(ji)(ji)算(suan)節(jie)點(dian)上進行,這(zhe)稱之為本地(di)化計(ji)(ji)算(suan),本地(di)化計(ji)(ji)算(suan)是計(ji)(ji)算(suan)調(diao)度的一種重要優(you)化。
10、Gossip協議:節點管理。