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