直播源碼開(kāi)發(fā),分布式系統(tǒng)下的容錯(cuò)難到什么地步了
從傳統(tǒng)存儲(chǔ)系統(tǒng)到現(xiàn)代的分布式系統(tǒng),能滿足直播源碼開(kāi)發(fā)的場(chǎng)景需求越來(lái)越容易,但容錯(cuò)的難度卻直線上升,本身分布式系統(tǒng)就會(huì)通過(guò)多個(gè)節(jié)點(diǎn)上運(yùn)行或多個(gè)進(jìn)程通過(guò)消息交換協(xié)作解決一個(gè)問(wèn)題,由于故障的普遍存在,一個(gè)可用的分布式系統(tǒng)需要在故障發(fā)生的情況下仍然完成計(jì)算任務(wù)。
?

一、常見(jiàn)的故障類(lèi)型
1、停止故障,屬于對(duì)直播源碼開(kāi)發(fā)影響較輕的,指的是目標(biāo)及其、服務(wù)、進(jìn)程或某個(gè)子系統(tǒng)一旦故障就停止運(yùn)行,在不考慮通信故障和延遲的情況下,它意味著心跳斷等同于服務(wù)掛掉,很大程度上可以簡(jiǎn)化故障處理。
2、拜占庭故障,指的是目標(biāo)可以表現(xiàn)任意的行為,包括但不限于故障停止、發(fā)送錯(cuò)誤消息、計(jì)算出錯(cuò)、狀態(tài)任意變化等,對(duì)于直播源碼開(kāi)發(fā)來(lái)說(shuō),拜占庭故障很常見(jiàn),屬于無(wú)法根治的那一種。
3、通信故障,典型的情況就是消息丟失,尤其是在直播源碼開(kāi)發(fā)高負(fù)載情況下很常見(jiàn),通信故障通常通過(guò)消息重傳,重試來(lái)解決,需要注意的是,在使用UDP協(xié)議時(shí),基于UDP協(xié)議的特點(diǎn),也可能存在或出現(xiàn)消息傳輸丟失的情況。
?

二、容錯(cuò)的其他相關(guān)性
直播源碼開(kāi)發(fā)的故障原因是印象容錯(cuò)的因素之一,其次還和同步、異步特性有關(guān)。
同步指的是系統(tǒng)各節(jié)點(diǎn)之間運(yùn)行速率差異和消息傳輸延遲有上限,包括但不限于消息傳輸速度品滾,節(jié)點(diǎn)之間不可時(shí)鐘漂移等,反之就是系統(tǒng)異步。
一般直播源碼開(kāi)發(fā)會(huì)采用心跳超時(shí)來(lái)判斷故障的機(jī)制只有在同步的系統(tǒng)中才有意義,對(duì)一個(gè)異步系統(tǒng)采用超時(shí)機(jī)制,是不可取的,程序不能根據(jù)超時(shí)事件作出正確判斷。
?

三、排序
對(duì)分布式系統(tǒng)來(lái)說(shuō),各個(gè)節(jié)點(diǎn)都是平等,不存在說(shuō)誰(shuí)先誰(shuí)后,那么為了保證狀態(tài)機(jī)的正常應(yīng)用或保持狀態(tài)機(jī)的一致性,通常都會(huì)使用這種方法,保證直播源碼開(kāi)發(fā)任意時(shí)刻各個(gè)副本狀態(tài)都是一致的。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任