回覆列表
-
1 # 寫程式設計師的程式碼
-
2 # Bruceleexiaokan
主要看你的應用場景。譬如高頻交易、全圖分析等,集中式所謂scale up更合適。網際網路一般都需要scale out。
-
3 # 泰瑞孟
未來主要趨勢就是分散式儲存,特別是5G時代的,萬物互聯,必須用分散式。我們可以透過資料查詢到,華為的自主智慧財產權的鯤鵬系統就是分散式儲存。而且4月20日納入新基建的區塊鏈也是分散式儲存。
集中式和分散式架構
任何現在看起來非常和龐大的架構,一定是隨著業務產品中使用者量和資料量增長而不斷演變而來。分散式架構其實也是在集中式架構上發展而來。
一、集中式架構(單體-》叢集及垂直化)
1、單體架構非常簡單,就是我們經常使用的spring+struts/springmvc+Hibernate/mybatis構建一個基礎工程、Mysql資料庫作為持久化儲存。最後把專案構建成一個war包部署在Tomcat容器上即可使用。
a.優點:
這樣的架構足夠簡單,能夠快速開發和上線。而且對於專案初期使用者量不大的情況,這樣的架構足以支撐業務的正常執行。
b.缺點:
使用者量越來越大,網站的訪問量不斷增大,導致後端伺服器的負載越來越高。
2、叢集及垂直化
為了解決上面的單體架構的問題,降低耦合度,我們就從兩個方面來最佳化:
透過橫向增加伺服器,把單臺機器變成多臺機器的叢集。
按照業務的垂直領域進行拆分,減少業務的耦合度,以及降低單個war包帶來的伸縮性困難問題。
二、集中式架構(分散式微服務)
1、針對單體架構中有許多共享的業務場景,這些業務場景的邏輯肯定會被重複建立,從而產生非常多冗餘的業務程式碼。這些冗餘程式碼的維護成本會隨著時間的推移越來越高。
2、基於這些問題,就引入了分散式服務SOA。服務是最核心的抽象手段,業務不被劃分為一些粗粒度的業務服務和業務流程。
3、SOA主要解決的問題:
a.資訊孤島。
b.共享業務的重用。
綜上所述:
分散式服務是降低了很多耦合性,提高了系統的容錯性,有利於與開發人員單獨開發某個模組而不受影響。
但是運維成本比較複雜。
所以集中式和分散式具體選擇哪個要根據自己的業務需要,並不是集中式就比分散式差。