- 分布式架構原理與實踐
- 崔皓
- 1216字
- 2022-09-29 10:23:33
1.3 分布式架構的特征
前面我們介紹了一個簡單的分布式系統,相信大家已經對它有了感性的認識。和集中式架構相比,分布式架構將資源、服務、任務、計算分布到不同的容器、服務器、網絡節點中,它們需要協同完成一個或者多個任務。接下來,我們總結一下分布式架構的特征。
?分布性。將分布兩字分開來看,“分”指的是拆分,可以理解為服務的拆分、存儲數據的拆分、硬件資源的拆分。通過前面的例子可以看出,電商系統針對客戶瀏覽商品并下訂單這個業務過程,被拆分了商品服務、訂單服務、庫存服務和支付服務;它會根據商品 ID 對商品數據進行拆分,并存放到不同的數據庫表中;對應用服務器和數據庫服務器也會進行拆分。“布”指的是部署,也指資源的部署。既有計算資源,例如訂單服務、庫存服務,它們被部署到不同的容器或者應用服務器中,也有存儲資源,例如將商品數據水平分布到不同的數據庫服務器。簡單來說,分布性就是拆開了部署。如果說單體架構是將計算和存儲任務(應用)都分配到同一個物理資源上,那么分布式架構就是將這些任務(應用)放到不同的硬件資源上,并且這些硬件資源有可能分布在不同的網絡中。
?自治性。從分布性的特征來看,資源分散了,以前一份資源做的事情,現在由多份資源同時完成。這樣提高了系統的性能和可用性,這也是設計分布式架構的目的。分布性導致了自治性。簡單來說,自治性就是每個應用服務都有管理和支配自身任務和資源的能力。例如,訂單服務擁有自己的硬件資源,包括容器或者應用服務器,同時還處理商品下單的任務。對內,它可以采用自己的技術來實現,并不受其他服務的影響,業務上專注于處理訂單業務;對外的溝通則使用服務注冊中心和消息隊列,與其他服務是平等關系。
?并行性。自治性導致每個應用服務都是一個獨立的個體,擁有獨立的技術和業務,占用獨立的物理資源。這種獨立能夠減小服務之間的耦合度,增強架構的可伸縮性,為并行性打下基礎。商品服務是被調用最為頻繁的服務,特別在用戶訪問量增大時,需要進行水平擴展,從原來的 1 個服務擴展成 2 個,甚至更多。擴展后的這些服務完成的功能相同,處理的業務相同,占用的資源也相同,它們并行處理大量請求,相當于將一個大任務拆解成了若干個小任務,分配到不同的服務器上完成,因此并行性也會被稱為并發性。其目的還是提高性能和可用性。
?全局性。分布性使得服務和資源都是分開部署的,自治性說明單個服務擁有單獨的業務和資源,多個服務通過并行的方式完成大型任務。多個分布在不同網絡節點的服務應用在共同完成一個任務時,需要有全局性的考慮。例如,商品服務在調用支付服務時,需要通過服務注冊中心感知支付服務的存在;多個庫存服務對商品庫存進行扣減時,需要考慮臨界資源的問題;訂單服務在調用支付服務和庫存服務的時候需要考慮分布式事務問題;當主數據庫服務器掛掉的時候,需要及時切換到從數據庫服務器,這些都是全局性的問題。說白了,就是分散的資源要想共同完成一件大事,需要溝通和協作,也就是擁有大局觀。
- Unity 2020 By Example
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- 深入理解Android(卷I)
- ASP.NET Core Essentials
- 青少年美育趣味課堂:XMind思維導圖制作
- Flask Web開發入門、進階與實戰
- C語言程序設計實踐教程
- Learning ArcGIS Pro
- PostgreSQL 11從入門到精通(視頻教學版)
- JavaScript動態網頁開發詳解
- Python貝葉斯分析(第2版)
- D3.js By Example
- Kubernetes進階實戰
- 3ds Max 2018從入門到精通
- 計算機系統解密:從理解計算機到編寫高效代碼