分布式系統 (大規模分布式系統原理解析和架構實踐)

2022-06-03 02:09:08 字數 2185 閱讀 7310

分布式系統的基礎理論:

分布式系統:多台機器通過網路連線在一起,作為乙個整體為上層提供服務。

一、基礎理論知識:資料分布、複製、一致性、容錯。

1、異常

(1)伺服器宕機(記憶體錯誤,伺服器停電):如何通過讀取持久化戒指(機械硬碟/固態硬碟)中的資料恢復記憶體資訊,從而恢復宕機前某個一致性狀態。

(2)網路異常(訊息丟失,訊息異常):網路永遠不可靠,任何乙個訊息只有接到對方回覆才可以認為是成功的。系統設計時要假設出現異常,並採取相應的處理措施。

(3)磁碟故障(磁碟損壞,磁碟資料錯誤):將資料儲存到多台計算機上,校驗

2、「超時」

分布式儲存系統的「三態」:「成功」,「失敗」,『超時「。

客戶端像伺服器端發出請求,並且伺服器端執行完了此請求,但伺服器宕機或者網路異常,導致伺服器端不能想客戶端傳送回覆。此時執行結果為超時。(冪等:一直重試直到成功)

二、效能分析

三、資料分布:雜湊分布,順序分布。

(1)雜湊分布

根據資料的特徵計算雜湊值,並將雜湊值與集群中的伺服器建立對映關係,從而將不同雜湊值的資料分布到不同的伺服器上。

雜湊函式取模。(一致性雜湊)

(2)順序分布(b+樹儲存結構類似)

(3)負載均衡

每個集群中有乙個總控節點,其他為工作節點,由總控節點進行全域性調控。

工作節點通過心跳包,將節點負載相關資訊(cpu,記憶體,磁碟,網路等資源使用率)傳送給主控節點,主控節點計算出工作節點負載以及需要遷移的資料,生成遷移任務,放入遷移佇列中等待執行,負載均衡要控制節奏,若將大量資料同時遷移到工作節點,系統在新增節點的過程中效能會大幅下降。要平滑地進行遷移,一般需要30分鐘到一小時。

(4)複製

一般有多個副本。乙個主副本多個備副本,主副本的資料複製到其他備副本。通過複製協議將資料同步到多個儲存節點,並確保多個副本之間資料的一致性。

複製協議:強同步複製和非同步複製(使用者請求是否需要同步到被副本才返回成功)

組提交: 主備副本的複製通過操作日誌來實現。積攢一定的操作日誌,再批量寫入到磁碟中。

操作日誌的原理:利用磁碟的順序讀寫特性,將客戶端的寫請求順序寫入磁碟, 然後應用到記憶體中,由於記憶體是隨機讀寫裝置,可以很容易的通過各種資料結構,比如b+樹將資料有效的組織起來。

一致性與可用性

一致性:讀操作總是能讀出前乙個寫操作的資料。

可用性:當某主機發生故障的時候,不影響讀寫操作。

(5)容錯

故障檢測: 租約機制(帶有超時時間的一種授權)

機器a檢測機器b是否發生故障,則a向b發放租約,b持有的租約在有效期內才允許服務,當b的租約快過期時,可以向a請求續約。當b發生故障,或與a的網路發生故障時,機器b的租約將過期,由於不能及時續約,所以b的租約到期,即主動停止服務。a可確保b不再提供服務,b的服務可安全遷移到其他服務。

故障恢復:

分布式儲存系統分為兩種結構:單層結構和雙層結構

單層結構:當乙個主副本失效時,主控節點擊另乙個備副本作為主副本提供服務。若為臨時故障,就等待一小時,重新將其作為副本。若為永久性故障,則重新增加節點,再拷貝資料,成為備副本。

雙層機構:在副本底層有個分布式檔案系統,將所有節點中的資料儲存起來,當主副本發生故障時,主控節點擊擇乙個節點載入發生故障節點的服務,(通過分布式檔案系統)

總控節點發生故障:要選主。paxos協議實現分布式鎖服務。

四、分布式協議(

租約,複製協議,一致性協議【兩階段提交協議,paxos協議】)

兩階段提交協議:為了保證跨多個節點操作的原子性。

請求階段:協調者通知所有的參與者準備提交或取消事務,然後進入表決過程。

提交階段:協調者基於第一階段的投票結果進行決策:是提交還是取消。當所有的參與者都同意提交,則提交;若有乙個沒有則取消。

paxos協議:為了確保多個節點對某個投票達成一致。(選主)   提議者(proposer),接收者(acceptor)

準備:提議者選擇乙個提議序號n,向接收者傳送prepare訊息。 接收者收到prepare訊息後,如果提議序號大於他所回覆的所有提議序號,則將上次接收的提議回覆給提議者,並承諾不再回覆比n小的提議。

批准:提議者收到了接收者的回覆後,進入批准階段。如果接收者回覆了上次回覆的提議,則提議者選擇提議號最大的值發給接受者;否則生成乙個新的題議值傳送給接受者。接受者在不誒被自己的承諾的情況下接受這個請求。

確認:若果超過一半的接收者接受,題議值生效。提議者傳送acknowleage 訊息通知所有的接收者提議生效。

大規模分布式壓測

阿里雲效能測試頁面 需要臨時擴容他們的機器來支援100w的qps,每秒100w的請求,聽起來還是挺恐怖的。什麼概念呢,2013 年雙12的大秒系統的峰值qps也就在42萬多。從這樣的資料來看,這個客戶的需求高的離譜。但是既然使用者有這個需求,我們還是需要滿足客戶的期望。遇到問題主要有 遇到的挑戰主要...

大規模分布式系統效能測試實踐

系統容量相比傳統應用數量級增長 微服務化架構,呼叫關係更加複雜 使用者增長迅速,資源突發需求量大 傳統效能測試工具效能不足,自研技術門檻高 瓶頸在各微服務間漂移,測試技術難度大 如何摸清資源擴容模型,有限資源下如何驗證效能 一旦效能問題流入現網,問題定位周期長 feed流會頻繁操作後台的redis等...

分布式系統

分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...