淺談分佈式系統

集中式

與分佈式對應的,就是集中式。
集中式就是把項目都存放在一個服務器中,雖然部署比較簡單,可是若是出現故障,整個服務都將不可用。並且也不利於擴容,這纔有了後面分佈式的發展。java

分佈式

分佈式系統是一個硬件或軟件組件分佈在不一樣的網絡計算機上,彼此之間僅僅經過消息傳遞進行通訊和協調的系統。因此分佈式系統上的計算機沒有空間上的限制,能夠存放不一樣的機櫃、不一樣的機房、甚至不一樣的城市中。
分佈式具備如下的特色:數據庫

  • 分佈性:分佈式系統的計算機在任意的空間上隨意分佈,並且能夠隨時變更分佈的狀況
  • 併發性:分佈式系統的多個節點,可能同一時間訪問同一個共享資源,好比數據庫、文件
  • 無序性:咱們在java中啓動了兩個線程,執行的順序是不能保證的,一樣的,分佈式進程間的通訊,順序也是難以保證的。

因爲分佈式直接的通訊是經過網絡的,因此網絡的延遲、故障、抖動,都會對分佈式系統有影響。固然,某個節點的故障也是有影響的。服務器

  • 通訊異常:因爲電纜、路由器等硬件,致使的網絡不可用,或者網絡傳輸過程當中不可避免的延遲,致使消息發送的丟失、延遲。
  • 網絡分區(腦裂):好比分佈式系統由上海北京兩個地方的節點組成,因爲網絡緣由,兩地的延遲不斷加大,互相之間不能通訊,而上海地區本身的N個節點能夠互相通訊,北京地區本身的M個節點能夠互相通訊,上海和北京本身內部有了本身的小集羣,完成了以前分佈式系統完成的功能。
  • 三態:在單機系統中的調用,要麼成功,要麼失敗。在分佈式系統中,則多了一個狀態,也就是超時。當A系統發消息給B系統時,可能消息就丟失了,也有可能,B系統收到消息後,迴應消息給A系統,這個時候消息丟失了。
相關文章
相關標籤/搜索