- 相關推薦
企業應用系統架構優化方法
系統優化是一個全面而復雜的工作,很難通過某一方面的提升而獲得很好的效果,也很難在一朝一夕完成系統的全面優化,每個系統都有其特性,需要綜合分析綜合考慮才能獲得比較好的效果。 小編下面為大家整理了一些企業應用系統架構優化的方法,歡迎閱讀參考:
1 實現動靜分離
所謂“動靜”分離,就是將靜態資源如圖片、CSS、Js等和動態資源如JSP、Servlet等進行分開的處理,通過使用不同的服務器,從而加快頁面的響應速度,這是目前互聯網應用最常用的方式之一,但是在企業應用端相對應用較少。
動靜分離至少有兩個方面的好處,一是提高了靜態資源的處理速度,因為應用服務器處理靜態資源的速度—般都不如專業的web服務器,第二個好處就是減少了應用服務器的負擔,應用服務器專注于處理動態請求,這對系統的穩定運行是有很大的幫助的。
要實現動靜分離,有兩種方式,一種是在加載靜態資源的HTML語言中,將地址指定到不同的IP/域名上,實現徹底的分離。這種方式需要在設計之初進行考慮,并不適合優化項目,因為這種修改會產生很大的工作量。第二種方式是通過分發器,攔截對靜態資源的訪問,將動態資源轉發給后端的應用服務器,實現動靜分離。這種方式的好處是不需要改動現有的代碼,僅需要做部署方式故調整,增加web服務器進行靜態資源的處理。示意圖如下:
目前轉發器比較多,既有老牌的Apache Web Server、有性能卓越的Zeus,也有目前如日中天的Nainx,不同的項目可以按照各自的需求進行選擇。
2 使用緩存技術
緩存技術是巨型項目、超大型項目中最重要的技術,范圍也比較廣,從前端的頁面、應用中的數據、數據庫本身等均可以進行緩存,每個方面使用的技術也千差萬別。使用緩存可以帶來兩個方面的好處,一是緩存的數據可以被高速加載,從內存中讀取數據比通過數據庫或磁盤讀取具有更好的效率;二是最重要的,減少了數據庫服務器的壓力,有利于數據庫的穩定,數據庫可以使用更多的資源進行查詢、統計等工作,有利于提高系統的整體運行速度。對于大中型應用而言,應用中的數據緩存和數據庫端的緩存是應該被考慮的。數據庫端的緩存在本文數據庫章節中進行描述,本節描述應用中數據的緩存。
要使用緩存,首先需要明確緩存的內容。一般優化項目不建議做全部數據緩存,或者使用內存數據庫之類的技術,這種修改工作量巨大,由此帶來的安全性、穩定性、數據的一致性都可能存在較大的隱患。所以,緩存的內容需要有所選擇,一般的說,應該根據數據的數據量、被讀取的次數、增加/更新頻率進行選擇。如果數據較少、增加/更新頻率非常低,那么應該考慮直接緩存在應用服務器端,只有對于重要性較高、讀取次數較多、增加/更新頻率相對適中的數據,才適合使用獨立緩存。 確定緩存的內容之后,就應該確定緩存的方式。對于緩存于應用服務器端的資源,一般選擇KEY-ALUE(OBJECT)進行緩存。對于獨立緩存,其內容也KEY-VALUE的格式進行存儲(如果使用內存數據庫實現緩存,那么存儲的就是與數據庫相同的信息),VALUE可以選擇SON或者Java Object,其中JSON占用空間較少,讀取的網絡流量較少,讀取之后需要進行轉換為Java對象;JavaXCN占用空間較大,讀取的網絡流量會較多,讀取之后無需進行轉化(前提是要求該對象已經系列化),不同系統可以各自特點進行選擇。
對于獨立緩存,接下來的工作是選擇緩存服務器,緩存服務器選擇需要具有一定的原則:是否滿足已經確定的緩存方式、對操作系統要求如何、穩定性如何、是否支持分布式、是否支持多節點熱備、客戶端(即JAVA調用接口)接口是否支持漂移(一個節點崩潰是否能轉移到另外的節點)、客戶端是否高效等等。從目前業界來看,memcached、redis都是應用比較廣泛的緩存服務器。
選擇完緩存服務器之后,就需要對系統的代碼進行一定的改造。改造的內容就是將通過數據庫讀取的信息改為從緩存服務器獲得,而對數據的保存、修改、刪除操作,既要操作數據庫上的數據,也需要對緩存服務器的信息進行更新,如下圖所示:
由于是對系統的優化,那么系統中已經具有很多數據且并未進入緩存,因此還需要將緩存服務器中的數據進行初始化。有兩種方式來進行,一種方式是直接將數據庫中的數據一次性加載到緩存服務器,另外一種方式是在修改Load數據的方式,先從緩存服務器獲取,如果沒有,則從數據庫獲取,然后同步到緩存服務器上。對于優化項目,建議使用第二種方式。第二種方式一個額外的好處就是當緩存服務器全部不可用時,系統也能提供完整的服務。
3 使用異步日志記錄
對于企業應用而言,對用戶的操作的記錄是很重要的,在系統出現某些問題的時候,可以通過日志進行數據恢復。一般系統要么沒有進行記錄,要么使用數據庫進行同步記錄。這部分數據會比較龐大,少則百萬級,多則數億,并且隨著使用量的增加而逐漸增加。這些表屬于使用率最高的表之一,在這些表上進行經常性數據插入,有可能會變成系統的噩夢。
為了解決這個問題,引入異步日志記錄,是較為理想的選擇。通過在web容器中增加過濾器,攔截用戶的請求,然后將用戶的請求和表單數據封裝為JSON格式的數據,采用異步方式發送到NoSQL數據庫,需要恢復的時候,通過對JSON數據進行還原。這種方式有如下好處:
1)不需要改動現有代碼而進行了用戶操作記錄;
2)由于采用異步模式,幾乎不會增加用戶操作的時間;
3)采用NoSQL+JSON存儲,不用為每一類操作特別設置特定的表結構,修改簡單。
目前的NoSQL數據庫也逐漸顯露頭角,根據DB Engines在今年10月發布的數據庫排名中,MongoDB的NoSQL服務器已經躍居第七位,因此NoSQL服務器目前推薦使用MongoDB。
【企業應用系統架構優化方法】相關文章:
系統架構設計師:優化顯示速度01-11
構建生產結構優化系統的方法07-31
存儲架構體系發展在電信支撐系統中的應用09-22
企業oa系統核心應用12-28
企業網站SEO優化方法08-28
企業大規模系統整合架構如何選型10-27
企業網站的優化和推廣方法06-25
如何搭建系統CSS架構12-31
企業信息系統應用論文01-22
系統架構設計模式大全08-22