1.簡要說明
在項目中,我們通常將需求分爲三個部分:數據庫、服務器處理、前端展示。如果這些需求都實現在了同一個應用中,那麼這個項目就是單體架構的。在項目發展初期,由於所有的業務邏輯寫在一個應用中,開發、測試、部署變得簡單高效。但是,隨着業務不斷擴大、需求不斷增多,代碼會越來越臃腫,系統變得難以維護。試想,當只需要修改一個很小的功能時,由於所以功能模塊都寫在同一個應用,重新部署會影響其他功能正常運行。另外,當項目太過龐大臃腫時,系統優化也是一道難題。每個功能模塊的併發量、使用場景、消耗的資源類型都不同,但是它們都在同一個應用中,這就使得我們對各個功能模塊的容量很難做出評估,難以對個別模塊進行優化。
2.流程圖
3.問題
- 隨着用戶增長,tomcat和數據庫之間相互競爭服務器資源,單機性能不足以支撐業務,例如:不管是數據庫還是應用都要消耗系統內存、CPU資源,當資源出現瓶頸,系統就會出現不能正常訪問的問題。
- 服務器掛掉,不管是數據庫還是應用都無法正常訪問。
- 代碼會越來越臃腫,系統變得難以維護。
4.優化辦法。
把Tomcat和數據庫分別安置在獨立的服務器,可以顯著提高兩者的性能。
5.涉及技術點
- DNS介紹
DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,使用的是UDP協議的53號端口,它用於TCP/IP網絡,它所提供的服務是用來將主機名和域名轉換爲IP地址的工作。DNS就是這樣的一位“翻譯官”,如圖所示。