1. 程式人生 > >分布式系統定義及特點

分布式系統定義及特點

ron 分布式系統 全局 獨立 存在 延時 span 集群 軟件

一、分布式系統定義

分布式系統是一個硬件或軟件組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。

二、特性

1、副本(Replica)是分布式系統最常見的概念之一,指分布式系統對數據和服務提供的一種冗余方式。在常見的分布式系統中,為了對外提供高可用的服務,我們往往會對數據和服務進行副本處理。

  1)數據副本指在不同節點上持久同一份數據,當某一個節點上存儲的數據丟失時,可以從副本上讀取到該數據,這是解決分布式系統數據丟失問題的有效手段。

  2)服務副本指多個節點提供同樣的服務,每個節點都有能力接受來自外部的請求並進行相應的處理。

2、並發性

  在程序運行過程中的並發性操作是非常常見的行為,例如同一個分布式系統中的多個節點,可能會並發地操作一些共享的資源,如何準確並高效的協調分布式並發操作也成為了分布式系統架構與設計中最大的挑戰之一。

3、全局時鐘

  分布式系統是有一系列在空間上隨意分布的多個進程組成的,在這些進程之間通過交換消息來進行相互通信。因此,在分布式系統中,很難定義兩個事件究竟誰先誰後,原因就是分布式系統缺乏一個全局的時鐘序列控制。

4、故障總會發生

  任何在設計階段考慮到的異常情況,一定會在系統實際運行中發生,並且,在系統實際運行過程中還會遇到很多在設計時未能考慮到的異常故障。所以,除非需求指標允許,在系統設計時不能放過任何異常情況。

三、分布式環境的各種問題

1、通信異常

  網絡本身的不可靠性,各節點之間的網絡通信能夠正常進行,其延時也會遠大於單機操作。單機內存訪問的延時在納秒數量級(通常是10ns左右),而正常的一次網絡通信的延遲在0.1~1ms左右,巨大的延時差別,會影響消息的收發的過程,因此消息丟失和消息延遲變得非常普遍。

2、網絡分區

  當網絡由於發生異常情況,導致分布式系統中部分節點之間的網絡延時不斷增大,最終導致組成分布式系統的左右節點中,只有部分節點能夠進行正常通信,而另一些節點則不能,這個現象成為網絡分區,俗稱“鬧裂”。當網絡分區出現時,分布式系統就出現局部小集群,在極端情況下,這些小集群會獨立完成原本需要整個分布式系統才能完成的功能,包括對數據的事務處理,這對分布式一致性提出了非常大的挑戰。

3、三態

  在分布式環境下,網絡可能出現各式各樣的問題,因此分布式系統的每一次請求與響應,存在特有的三態概念,即成功、失敗與超時。超時現象通常有一下兩種情況:

  1)由於網絡原因,該請求(消息)並沒有被成功發送到接收方,而是在發送過程就發生了消息丟失現象。

  2)該請求(消息)成功的被接收方接受後,並進行了處理,但是在將響應反饋給發送方的過程中,發生了消息丟失現象。

當出現這樣的超時現象時,網絡通信的發起方是無法確定當前請求是否被成功處理的。

4、節點故障

  分布式系統下比較常見的問題,指組成分布式系統的服務器節點出現宕機或僵死現象。

  

分布式系統定義及特點