單塊架構概述

2021-08-28 01:55:13 字數 959 閱讀 5551

mvc架構將應用在邏輯上分成了三層,但它不是物理上的分層。這也意味著,即便將應用架構分成了所謂的三層,經過開發團隊對不同層的**實現,經過compile、package、deploy後,不考慮負載均衡以及水平擴充套件的情況,最終還是執行在同一臺機器的同乙個程序中。對於這種功能集中、**和資料中心化、乙個發布包、部署後執行在同一程序的應用程式,通常稱之為單塊架構應用。

例如:典型的單塊架構應用,傳統的jee專案所構建的產品或者專案,通常以war包或者ear包存在,當部署這類應用時,通常是將整個乙個塊作為乙個整體,部署到同乙個web容器,如tomcat或者jetty中。當這類應用執行起來後,所有的功能也都執行在同乙個程序中。

note:

擴充套件分為垂直擴充套件和水平擴充套件

如果應用程式的所有功能**都執行在同乙個server上,會導致應用程式的擴充套件非常困難,如果擴充套件要求緊急,那麼垂直擴充套件可能是最容易的(比如投行,**等金融大鱷公司)

在大多數情況下,如果捨得砸錢上ibm的server,oracle的db或者emc的儲存裝置,不用改變一行**,整個世界都會變得美好。但是,伴隨著業務的增加,資料的增加,垂直擴充套件可能會變得一次比一次吃力,成為也會越來越高。

水平擴充套件通常的做法是建立乙個集群,通過在集群中不斷新增新node,然後借助lb,將使用者的請求按照lb演算法(輪轉法、雜湊法、最小連線法等)將請求分配到不同的node上

但是,對於單塊架構而言,由於所有程式**都執行在server的同乙個程序中,會導致應用程式的水平擴充套件成本非常高。例如:如果應用程式某部分的功能是記憶體密集型的,需要快取大量資料,而另外一部分功能是cpu密集型的,需要進行大量的運算,那麼每次進行水平擴充套件,執行該應用的伺服器都必須有足夠的記憶體和強勁的cpu來滿足需求(當然對大型網際網路企業記憶體和cpu根本不是問題)

因此鑑於每台server都要提供該應用系統所需要的各種資源,基礎設施的整體花費可能非常高。另外,如果某些節點內部存在有狀態的服務,比如使用者登入資訊等,會增加水平擴充套件的難度

微服務架構與實踐 王磊 著

架構 架構概述

定義 最合適 架構是各方面折中 balance 的結果 單體架構 註冊 查詢 下單分別成立乙個部 微服務架構 目標 可用性伸縮性 擴充套件性安全性 monoliths all in one 單體架構 服務端前後端分離 舉例問題 耦合,如乙個人負責乙個功能,每個人提交 都要重新編譯war micros...

iOS架構概述

對於學習ios的童鞋來說 了解框架的大致內容是很有必要的.首先說ios和macosx比如下 cocoa cocoa touch media media core services core services core os core os mac os x ios 從上面這個比較中可以看出,ios的...

thinkphp架構概述

thinkphp使用mvc模式,它強制性的使應用程式的輸入 處理和輸出分開。使用mvc應用程式被分成三個核心部件 模型 m 檢視 v 控制器 c 他們各自處理自己的任務。1 入口檔案 2 應用 3 模組 4 操作方法5 模型 資料模型 6 檢視 頁面 7 命名空間 8 跨控制器呼叫 當前模組 3 c...