亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • 企業(yè)應用系統(tǒng)架構優(yōu)化方法

    時間:2024-09-20 16:40:40 系統(tǒng)架構師 我要投稿
    • 相關推薦

    企業(yè)應用系統(tǒng)架構優(yōu)化方法

      系統(tǒng)優(yōu)化是一個全面而復雜的工作,很難通過某一方面的提升而獲得很好的效果,也很難在一朝一夕完成系統(tǒng)的全面優(yōu)化,每個系統(tǒng)都有其特性,需要綜合分析綜合考慮才能獲得比較好的效果。 小編下面為大家整理了一些企業(yè)應用系統(tǒng)架構優(yōu)化的方法,歡迎閱讀參考:

      1 實現(xiàn)動靜分離

      所謂“動靜”分離,就是將靜態(tài)資源如圖片、CSS、Js等和動態(tài)資源如JSP、Servlet等進行分開的處理,通過使用不同的服務器,從而加快頁面的響應速度,這是目前互聯(lián)網(wǎng)應用最常用的方式之一,但是在企業(yè)應用端相對應用較少。

      動靜分離至少有兩個方面的好處,一是提高了靜態(tài)資源的處理速度,因為應用服務器處理靜態(tài)資源的速度—般都不如專業(yè)的web服務器,第二個好處就是減少了應用服務器的負擔,應用服務器專注于處理動態(tài)請求,這對系統(tǒng)的穩(wěn)定運行是有很大的幫助的。

      要實現(xiàn)動靜分離,有兩種方式,一種是在加載靜態(tài)資源的HTML語言中,將地址指定到不同的IP/域名上,實現(xiàn)徹底的分離。這種方式需要在設計之初進行考慮,并不適合優(yōu)化項目,因為這種修改會產(chǎn)生很大的工作量。第二種方式是通過分發(fā)器,攔截對靜態(tài)資源的訪問,將動態(tài)資源轉發(fā)給后端的應用服務器,實現(xiàn)動靜分離。這種方式的好處是不需要改動現(xiàn)有的代碼,僅需要做部署方式故調整,增加web服務器進行靜態(tài)資源的處理。示意圖如下:

      目前轉發(fā)器比較多,既有老牌的Apache Web Server、有性能卓越的Zeus,也有目前如日中天的Nainx,不同的項目可以按照各自的需求進行選擇。

      2 使用緩存技術

      緩存技術是巨型項目、超大型項目中最重要的技術,范圍也比較廣,從前端的頁面、應用中的數(shù)據(jù)、數(shù)據(jù)庫本身等均可以進行緩存,每個方面使用的技術也千差萬別。使用緩存可以帶來兩個方面的好處,一是緩存的數(shù)據(jù)可以被高速加載,從內存中讀取數(shù)據(jù)比通過數(shù)據(jù)庫或磁盤讀取具有更好的效率;二是最重要的,減少了數(shù)據(jù)庫服務器的壓力,有利于數(shù)據(jù)庫的穩(wěn)定,數(shù)據(jù)庫可以使用更多的資源進行查詢、統(tǒng)計等工作,有利于提高系統(tǒng)的整體運行速度。對于大中型應用而言,應用中的數(shù)據(jù)緩存和數(shù)據(jù)庫端的緩存是應該被考慮的。數(shù)據(jù)庫端的緩存在本文數(shù)據(jù)庫章節(jié)中進行描述,本節(jié)描述應用中數(shù)據(jù)的緩存。

      要使用緩存,首先需要明確緩存的內容。一般優(yōu)化項目不建議做全部數(shù)據(jù)緩存,或者使用內存數(shù)據(jù)庫之類的技術,這種修改工作量巨大,由此帶來的安全性、穩(wěn)定性、數(shù)據(jù)的一致性都可能存在較大的隱患。所以,緩存的內容需要有所選擇,一般的說,應該根據(jù)數(shù)據(jù)的數(shù)據(jù)量、被讀取的次數(shù)、增加/更新頻率進行選擇。如果數(shù)據(jù)較少、增加/更新頻率非常低,那么應該考慮直接緩存在應用服務器端,只有對于重要性較高、讀取次數(shù)較多、增加/更新頻率相對適中的數(shù)據(jù),才適合使用獨立緩存。   確定緩存的內容之后,就應該確定緩存的方式。對于緩存于應用服務器端的資源,一般選擇KEY-ALUE(OBJECT)進行緩存。對于獨立緩存,其內容也KEY-VALUE的格式進行存儲(如果使用內存數(shù)據(jù)庫實現(xiàn)緩存,那么存儲的就是與數(shù)據(jù)庫相同的信息),VALUE可以選擇SON或者Java Object,其中JSON占用空間較少,讀取的網(wǎng)絡流量較少,讀取之后需要進行轉換為Java對象;JavaXCN占用空間較大,讀取的網(wǎng)絡流量會較多,讀取之后無需進行轉化(前提是要求該對象已經(jīng)系列化),不同系統(tǒng)可以各自特點進行選擇。

      對于獨立緩存,接下來的工作是選擇緩存服務器,緩存服務器選擇需要具有一定的原則:是否滿足已經(jīng)確定的緩存方式、對操作系統(tǒng)要求如何、穩(wěn)定性如何、是否支持分布式、是否支持多節(jié)點熱備、客戶端(即JAVA調用接口)接口是否支持漂移(一個節(jié)點崩潰是否能轉移到另外的節(jié)點)、客戶端是否高效等等。從目前業(yè)界來看,memcached、redis都是應用比較廣泛的緩存服務器。

      選擇完緩存服務器之后,就需要對系統(tǒng)的代碼進行一定的改造。改造的內容就是將通過數(shù)據(jù)庫讀取的信息改為從緩存服務器獲得,而對數(shù)據(jù)的保存、修改、刪除操作,既要操作數(shù)據(jù)庫上的數(shù)據(jù),也需要對緩存服務器的信息進行更新,如下圖所示:

      由于是對系統(tǒng)的優(yōu)化,那么系統(tǒng)中已經(jīng)具有很多數(shù)據(jù)且并未進入緩存,因此還需要將緩存服務器中的數(shù)據(jù)進行初始化。有兩種方式來進行,一種方式是直接將數(shù)據(jù)庫中的數(shù)據(jù)一次性加載到緩存服務器,另外一種方式是在修改Load數(shù)據(jù)的方式,先從緩存服務器獲取,如果沒有,則從數(shù)據(jù)庫獲取,然后同步到緩存服務器上。對于優(yōu)化項目,建議使用第二種方式。第二種方式一個額外的好處就是當緩存服務器全部不可用時,系統(tǒng)也能提供完整的服務。

      3 使用異步日志記錄

      對于企業(yè)應用而言,對用戶的操作的記錄是很重要的,在系統(tǒng)出現(xiàn)某些問題的時候,可以通過日志進行數(shù)據(jù)恢復。一般系統(tǒng)要么沒有進行記錄,要么使用數(shù)據(jù)庫進行同步記錄。這部分數(shù)據(jù)會比較龐大,少則百萬級,多則數(shù)億,并且隨著使用量的增加而逐漸增加。這些表屬于使用率最高的表之一,在這些表上進行經(jīng)常性數(shù)據(jù)插入,有可能會變成系統(tǒng)的噩夢。

      為了解決這個問題,引入異步日志記錄,是較為理想的選擇。通過在web容器中增加過濾器,攔截用戶的請求,然后將用戶的請求和表單數(shù)據(jù)封裝為JSON格式的數(shù)據(jù),采用異步方式發(fā)送到NoSQL數(shù)據(jù)庫,需要恢復的時候,通過對JSON數(shù)據(jù)進行還原。這種方式有如下好處:

      1)不需要改動現(xiàn)有代碼而進行了用戶操作記錄;

      2)由于采用異步模式,幾乎不會增加用戶操作的時間;

      3)采用NoSQL+JSON存儲,不用為每一類操作特別設置特定的表結構,修改簡單。

      目前的NoSQL數(shù)據(jù)庫也逐漸顯露頭角,根據(jù)DB Engines在今年10月發(fā)布的數(shù)據(jù)庫排名中,MongoDB的NoSQL服務器已經(jīng)躍居第七位,因此NoSQL服務器目前推薦使用MongoDB。

    【企業(yè)應用系統(tǒng)架構優(yōu)化方法】相關文章:

    系統(tǒng)架構設計師:優(yōu)化顯示速度01-11

    構建生產(chǎn)結構優(yōu)化系統(tǒng)的方法07-31

    存儲架構體系發(fā)展在電信支撐系統(tǒng)中的應用09-22

    企業(yè)oa系統(tǒng)核心應用12-28

    企業(yè)網(wǎng)站SEO優(yōu)化方法08-28

    企業(yè)大規(guī)模系統(tǒng)整合架構如何選型10-27

    企業(yè)網(wǎng)站的優(yōu)化和推廣方法06-25

    如何搭建系統(tǒng)CSS架構12-31

    企業(yè)信息系統(tǒng)應用論文01-22

    系統(tǒng)架構設計模式大全08-22