2023-11-21 分類: 網站建設
前言
寫這篇文章的目的是為了幫助自己思考和澄清,以及如何從一個簡單的網站架構演進到一個大型的網站架構,主要集中在技術方面
簡單的網站
由于沒做過php,所以就以jsp為例,jsp為網站前端,以電子商務網站為例,描述一個簡單的網站結構
前端jsp+css+js
后端java ssh
網絡容器
數據庫
開發人員,一名美工,一名前端,一名 Java
部署計劃是:
一臺服務器,部署和
架構圖如下:
應用和數據庫的分布式部署
然后網站運行了一段時間,開始盈利了,用戶數量也增加了。這時候數據庫的數據量還不是很大。
但是,越來越多的用戶訪問會占用大量的服務器內存和cpu。數據庫和應用程序應該分開部署。架構圖如下
這樣網站就可以運行一段時間了
解耦開發
接下來我們來看看開發問題,但是開發和運維往往是分不開的。由于網站業務的快速發展,我們必須給它添加新的功能,否則將無法發揮,功能也會越來越多的開發者變得越來越相互依賴。以前的開發模式是java程序員從jsp寫到dao,全都負責,所以現在有5個java一起開發,每個負責不同的功能,比如用戶模塊、商品模塊、訂單模塊、交易模塊等。 ,那么問題來了
1 Java程序員經常對css做一些調整,寫了很多工作,我們使用的是
2 不一定要等到所有模塊都開發完成后再上線。在很多情況下,只需要修改一個模塊就可以上線。那么代碼寫在一個項目中,版本控制就變得很困難了。而且,每次修改一個模塊的功能,都可能影響到另一個模塊的功能,導致項目變得很不穩定。這種情況對于運行中的項目來說是致命的,無限加班也無濟于事。痛苦。
解決方案 1(模塊化)
這是我多年前想到的解決方案。這么多功能不能合二為一。我指的是一個 java web 項目。至少在開發過程中必須模塊化,分離不同的功能。 通過接口調用,如用戶模塊、應用模塊、商品模塊、訂單模塊、交易模塊等。不同的人負責開發,那么模塊之間如何通信呢?我當時的計劃是,每個后端模塊都是一個jar包項目。當它們被釋放時php大型網站技術架構,它們被標記為一個 jar 包,供其他模塊調用。該項目的構建使其從開發到部署更加自動化。基本實現模塊化開發,項目發布更加穩定。
模塊化的缺點
這個想法就是從那里來的,他們也模塊化了不同的功能,但是這種形式有很多缺點:
1 隨著時間的推移,每個模塊都在不斷更新,版本也在不斷升級。如果模塊 A 依賴于模塊 b,則 C
可以理解為A為web前置模塊,b為用戶模塊,C為訂單模塊
如下圖:
如果 b 或 C 發生變化,則 A 有 2 個選擇:
1 如果 b 和 C 沒有更新,它們仍然可以使用。結果將是不支持最新的 b 和 c 函數。
2 如果選擇更新,A需要重新添加新的b或C jar包并進行調試和測試工作,
從接口依賴的角度來看
因為b和C需要查數據庫,所以b和C的jar包暴露給A的api太多,沒辦法很好的控制。對于A項目的開發者來說,接口不清晰,幾乎所有的方法都可以調用,使得b和C的變化對上層A產生不可控的影響。
從系統性能來看
由于b和C都需要檢查數據庫,在A中以jar的形式,占用了A項目中所有服務器的內存、cpu等資源,無法分布式部署。
方案二:模塊化分布式部署
那么應該用什么方案,最好是分布式部署,通過網絡通信調用A和b,C
由此帶來的好處
1 A、b、C實現分布式部署
2 b、C提供清晰的接口供A調用,只要接口不變,b和C修改內部業務邏輯,A不需要重新構建和部署,實現大解耦,即, 修改部分系統功能php大型網站技術架構,其他模塊不受影響或受影響較小,影響范圍可控。
下一篇大型網站系統架構演進(二)分布式模塊間的通信
目錄大型網站系統架構演進
網頁名稱:如何從一個簡單的網站架構演進發展成大型網站
網站路徑:http://m.newbst.com/news39/295839.html
成都網站建設公司_創新互聯,為您提供小程序開發、網站改版、手機網站建設、品牌網站設計、網站排名、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容