不同系統(tǒng)架構(gòu)下的容錯(cuò)方案
- 單體系統(tǒng)集中式
硬件冗余、模塊化、可插拔、透明切換 - 分布式系統(tǒng)
一般利用軟件容錯(cuò)
復(fù)制和冗余
需要共識算法
容錯(cuò)架構(gòu)
應(yīng)用容錯(cuò)架構(gòu)
數(shù)據(jù)庫同步(互聯(lián)網(wǎng)系統(tǒng)微服務(wù)架構(gòu))
內(nèi)存狀態(tài)同步復(fù)制架構(gòu)
主從復(fù)制(復(fù)制的是計(jì)算的結(jié)果)、狀態(tài)機(jī)復(fù)制(復(fù)制的是操作)
共識算法是容錯(cuò)系統(tǒng)的核心,但共識算法不是萬能的,前提是采用哪種故障模型。
故障類型
系統(tǒng)模型
- 同步模型
全部時(shí)鐘、進(jìn)程的每一步操作都存在時(shí)間上限、消息傳輸具有上限 - 異步模型
時(shí)鐘不同步、進(jìn)程以不同的速率運(yùn)行、消息傳輸可以被任意延遲
后續(xù)主要針對異步模型研究、分布式系統(tǒng)主要是異步模型
故障檢測
每個(gè)故障的進(jìn)程都能被發(fā)現(xiàn)
不會誤判(異步模型比較難實(shí)現(xiàn))
一致性
- 強(qiáng)一致性
線性一致、
順序一致(主要研究順序一致) - 弱一致性
共識算法
原理和架構(gòu)
邏輯時(shí)鐘,實(shí)現(xiàn)了偏序 Partial Order 50:00,通過引入進(jìn)程間優(yōu)先級可以得到Total Order。
- Paxos
Proposer - 給出提案
Acceptor - 對提案偷票
Learner - 獲取提案的決議