分布式系統的關鍵特性:系統設計

聞數起舞 發佈 2020-06-06T07:38:24+00:00

分布式系統是一種系統,其組件位於不同的機器或網絡上,它們通過相互傳遞消息來通信和協調其動作,並且組件彼此交互以實現一個共同的目標。

分布式系統的關鍵特性:系統設計

分布式系統是一種系統,其組件位於不同的機器或網絡上,它們通過相互傳遞消息來通信和協調其動作,並且組件彼此交互以實現一個共同的目標。

在最簡單的定義中,分布式系統是一組計算機,這些計算機一起工作,對於最終用戶而言,它們就像一台計算機。 示例-銀行系統,大型多人在線遊戲和傳感器網絡。

1.並發

多個客戶端可能會嘗試同時訪問共享資源。 並發控制是DBMS之類的資料庫中的過程,用於管理同時(同時完成)的操作而不會彼此衝突。示例→Rajesh和他的朋友同時去電子售貨亭購買同一部電影的電影票和 相同的放映時間。 但是,在該特定劇院中,僅剩一個座位可以觀看電影。 如果沒有並發控制,那麼兩個電影觀眾最終都可能會購買票。 但是,並發控制方法不允許這種情況發生。 兩個電影觀眾仍然可以訪問電影座位資料庫中寫入的信息。 但是,並發控制僅向先完成交易過程的買方提供票證。

2.可擴展性

可伸縮性是系統通過向系統添加資源來處理越來越多的工作的能力。換句話說,它是計算機應用程式(硬體或軟體)在其(或其上下文)發生更改時繼續正常運行的能力。 大小或體積以滿足用戶需求

水平擴展→這意味著您可以通過在資源池中添加更多伺服器來進行擴展。 示例→MongoDB。

垂直擴展→這意味著您可以通過向現有伺服器添加更多電源(CPU,RAM,存儲設備等)來擴展。 示例→MySQL

3.可靠性

可靠性是指系統或系統元素在規定的條件下在給定的時間內無故障地執行其預期功能的可能性。even即使一個或多個軟體或硬體組件出現故障,分布式系統也可以繼續提供服務,這是可靠的。 ?→→因為如果任何組件出現故障,則立即將其替換為其他正常組件。示例→大型電子商務商店(Amazon),其中主要要求之一是,任何用戶交易都不應由於該組件的故障而被取消 機。 例如,如果用戶已將商品添加到他們的購物車中,則系統不會丟失該商品。 可靠的分布式系統通過軟體組件和數據的冗餘來實現這一目標。 如果承載用戶購物車的伺服器發生故障,則應替換另一台具有該購物車確切副本的伺服器。

4.可用性

可用性是指基礎結構,系統或解決方案在正常情況(條件)下可正常運行以達到其預期目的的時間百分比。示例→您將伺服器帶入了一年。 一年有365天。 現在,在完成一年的服務後,您會看到伺服器在一年的時間內處於關閉和啟動狀態,假設每年的總停機時間= 36.5天,每年的總正常運行時間= 365–36.5 = 328.5天可用性=(正常運行時間/正常運行時間+停機時間)* 100 = ((328.5)/(328.5 + 36.5))* 100 = 90%.

Availability高可用性→如果可用性趨於100%,則稱為高可用性。 為此,它包含備用組件,當活動組件停止工作時,備用組件會自動切換(故障轉移)。 故障轉移對用戶而言應該是無縫的,並且不應中斷服務。 一架可以每月飛行多個小時而又不會造成大量停機的飛機✈️可以說具有很高的可用性。 因為他們總是有額外的Jet Engine可用。

5.效率

效率就是使最便宜的東西(如速度,質量和成本)儘可能便宜。 如果我們將高速,高質量和最低成本相結合,則意味著良好的效率。

我們如何估計分布式系統的效率? 假設一個操作以分布式方式運行,並因此交付一組項目。 對其效率進行的兩種常規度量是表示獲得第一項的延遲的響應時間(或等待時間)和表示以給定的周期單位(例如,第二個)傳遞的項數的吞吐量(或帶寬)。 這些措施對於在分析級別限定系統的實際行為很有用,表示為網絡流量的函數。 這兩項措施對應以下單位成本:

· 無論消息大小如何,系統節點全局發送的消息數;

· 表示數據交換量的消息大小。

分布式數據結構所支持的操作的複雜性(例如,在分布式索引中搜索特定鍵)可被表征為這些成本單位之一的函數。

一般而言,根據"消息數"來分析分布式結構過於簡單。 它忽略了許多方面的影響,包括網絡拓撲,網絡負載及其變化,數據處理和路由中涉及的軟體和硬體組件可能的異構性等。但是,要確定精確的成本是相當困難的 可以準確考慮所有這些性能因素的模型; 因此,我們必須對系統性能進行粗略但可靠的估計。

6.可維修性

可維護性是指從故障中恢復(或預防)的難易程度; 系統保持運行的效率/效率。 它專注於諸如硬體組件的可訪問性和替換組件的可用性之類的事情。

7.可管理性

易於診斷和理解問題的發生時間,易於進行更新或修改以及系統的操作簡便性。

換句話說,它是指易於監視和維護系統以保持其性能,安全性和平穩運行的難易程度。 它的重點是直接於系統管理員,而不是用戶,他們提供工具和控制項來簡化該工作。

8.容錯

容錯是指系統(計算機,網絡,雲群集等)在一個或多個組件發生故障時繼續運行而不會中斷的能力。

OS可以通過硬體,軟體或利用負載平衡器的組合解決方案來處理OS恢復和容忍故障而不失敗的能力。

容錯系統使用自動替換故障組件的備份組件,以確保不損失服務。

9.一致性

在分布式系統中,一致性模型是系統與使用它的開發人員之間的契約。 如果對內存的操作遵守該模型定義的規則,則據說該系統支持某種一致性模型。它們是功能強大的抽象,有助於從系統的可觀察特性來描述該系統。示例→從實際的角度來看, 一致性模型回答以下問題:如果客戶端1在1:00 pm將對象添加到分布式數據存儲中,而客戶端2嘗試在1:01 pm讀取同一對象,則客戶端2能夠獲取新對象嗎? 還是因為找不到資源而得到404?答案是……取決於。 有許多因素需要考慮來回答這樣的問題。 其中之一是分布式數據存儲採用的一致性模型。

===我希望本文能幫助您基本了解分布式系統設計模式中的關鍵特性。 ===

(本文翻譯自RAJESH KUMAR的文章《Key Characteristics of Distributed System : System Design 》,參考:https://medium.com/rtkal/key-characteristics-of-distributed-system-system-design-f3a64d878814)

關鍵字: