分布式節(jié)點(diǎn)
- 無(wú)狀態(tài)節(jié)點(diǎn)
- 有狀態(tài)節(jié)點(diǎn): 數(shù)據(jù)讀取和寫(xiě)入的節(jié)點(diǎn)
- 宕(dàng)機(jī)節(jié)點(diǎn)
分布式通信
- rpc : A 節(jié)點(diǎn)--> B節(jié)點(diǎn)
分布式三態(tài)
響應(yīng)失?。河锌赡苁浅瑫r(shí),但是處理已經(jīng)成功;也有可能處理失敗
- 成功
- 失敗
- 超時(shí)
分布式系統(tǒng)調(diào)用要考慮所有調(diào)用環(huán)境的異常情況
副本
- 布式系統(tǒng)中為數(shù)據(jù)或服務(wù) 供的冗余
- 一致性問(wèn)題
數(shù)據(jù)分布方式
哈希分布
按照數(shù)據(jù)的某一特征計(jì)算哈希值,并將哈希值與 機(jī)器中的機(jī)器建立映射關(guān)系,從而將不同哈希值的數(shù)據(jù)分布到不同的機(jī)器上
- 擴(kuò)展問(wèn)題:比如從4臺(tái)機(jī)器擴(kuò)容到5臺(tái),那么hash%4 ----> hash%5幾乎所有的數(shù)據(jù)要重新遷移,如果是成倍速擴(kuò)容 hash % (4*2 ) 那么 遷移一半的數(shù)據(jù)到新機(jī)器
- 解決方法:對(duì)應(yīng)關(guān)系作為元數(shù)據(jù)由專(zhuān)門(mén)的元數(shù)據(jù)服務(wù)器管理 ,缺點(diǎn)需要維護(hù)大量的元數(shù)據(jù)
- 數(shù)據(jù)傾斜問(wèn)題:某一個(gè)id的用戶(hù)數(shù)據(jù)量超過(guò)機(jī)器的處理能力
按數(shù)據(jù)范圍分布
按數(shù)據(jù)范圍分布是另一個(gè)常見(jiàn)的數(shù)據(jù)分布式,將數(shù)據(jù)按特征值的值域范圍劃分為不同的區(qū)間,使得集群中每臺(tái)(組)服務(wù)器處理不同區(qū)間的數(shù)據(jù)
使用范圍分布數(shù)據(jù)的方式的最大優(yōu)點(diǎn)就是可以靈活的根據(jù)數(shù)據(jù)量的具體情況拆分原有數(shù)據(jù)區(qū)間, 拆分后的數(shù)據(jù)區(qū)間可以遷移到其他機(jī)器
- 按照用戶(hù)id,日期,地域等劃分:將[1, 33),,[33, 90),[90, 100)分別由 3 臺(tái)服務(wù)器 負(fù)責(zé)處理
按數(shù)據(jù)量分布
一致性哈希(consistent hashing)
- 算法原理
http://blog.codinglabs.org/articles/consistent-hashing.html - 改進(jìn)方案
- 應(yīng)用場(chǎng)景
基本副本協(xié)議
中心化副本控制協(xié)議
去中心化副本控制協(xié)議
- Chubby/Zookeeper的副本控制協(xié)議 : Paxos 的去中心化協(xié)議
Lease機(jī)制
Lease 是由頒發(fā)者授予的在某一有效期內(nèi)的承諾。頒發(fā)者一旦發(fā) 出 lease,則無(wú)論接受方是否收到,也無(wú)論后續(xù)接收方處于何種狀態(tài),只要 lease 不過(guò)期,頒發(fā)者一 定嚴(yán)守承諾;另一方面,接收方在 lease 的有效期內(nèi)可以使用頒發(fā)者的承諾,但一旦 lease 過(guò)期,接 收方一定不能繼續(xù)使用頒發(fā)者的承諾
- 繼續(xù)跟進(jìn)
基于 lease 機(jī)制確定節(jié)點(diǎn)狀態(tài)
Quorum機(jī)制
- 繼續(xù)跟進(jìn)