回覆列表
  • 1 # 寫程式設計師的程式碼

    集中式和分散式架構

    任何現在看起來非常和龐大的架構,一定是隨著業務產品中使用者量和資料量增長而不斷演變而來。分散式架構其實也是在集中式架構上發展而來。

    一、集中式架構(單體-》叢集及垂直化)

    1、單體架構非常簡單,就是我們經常使用的spring+struts/springmvc+Hibernate/mybatis構建一個基礎工程、Mysql資料庫作為持久化儲存。最後把專案構建成一個war包部署在Tomcat容器上即可使用。

    a.優點:

    這樣的架構足夠簡單,能夠快速開發和上線。而且對於專案初期使用者量不大的情況,這樣的架構足以支撐業務的正常執行。

    b.缺點:

    使用者量越來越大,網站的訪問量不斷增大,導致後端伺服器的負載越來越高。

    2、叢集及垂直化

    為了解決上面的單體架構的問題,降低耦合度,我們就從兩個方面來最佳化:

    透過橫向增加伺服器,把單臺機器變成多臺機器的叢集。

    按照業務的垂直領域進行拆分,減少業務的耦合度,以及降低單個war包帶來的伸縮性困難問題。

    二、集中式架構(分散式微服務)

    1、針對單體架構中有許多共享的業務場景,這些業務場景的邏輯肯定會被重複建立,從而產生非常多冗餘的業務程式碼。這些冗餘程式碼的維護成本會隨著時間的推移越來越高。

    2、基於這些問題,就引入了分散式服務SOA。服務是最核心的抽象手段,業務不被劃分為一些粗粒度的業務服務和業務流程。

    3、SOA主要解決的問題:

    a.資訊孤島。

    b.共享業務的重用。

    綜上所述:

    分散式服務是降低了很多耦合性,提高了系統的容錯性,有利於與開發人員單獨開發某個模組而不受影響。

    但是運維成本比較複雜。

    所以集中式和分散式具體選擇哪個要根據自己的業務需要,並不是集中式就比分散式差。

  • 2 # Bruceleexiaokan

    主要看你的應用場景。譬如高頻交易、全圖分析等,集中式所謂scale up更合適。網際網路一般都需要scale out。

  • 3 # 泰瑞孟

    未來主要趨勢就是分散式儲存,特別是5G時代的,萬物互聯,必須用分散式。我們可以透過資料查詢到,華為的自主智慧財產權的鯤鵬系統就是分散式儲存。而且4月20日納入新基建的區塊鏈也是分散式儲存。

  • 中秋節和大豐收的關聯?
  • 吉利丁粉可以弄奶油嗎?怎麼弄呢?