亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

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

時(shí)間:2022-06-17 23:25:45 系統(tǒng)架構(gòu)師 我要投稿
  • 相關(guān)推薦

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

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

  1 實(shí)現(xiàn)動(dòng)靜分離

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

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

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

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

  2 使用緩存技術(shù)

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

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

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

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

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

  3 使用異步日志記錄

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

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

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

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

  3)采用NoSQL+JSON存儲(chǔ),不用為每一類操作特別設(shè)置特定的表結(jié)構(gòu),修改簡單。

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

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

圖書檢索系統(tǒng)體系架構(gòu)研究12-05

如何成為優(yōu)秀的系統(tǒng)架構(gòu)師08-30

網(wǎng)站鏈接優(yōu)化方法03-30

網(wǎng)站欄目的優(yōu)化方法04-07

如何優(yōu)化企業(yè)資本結(jié)構(gòu)04-01

企業(yè)供應(yīng)鏈流程優(yōu)化08-31

如何優(yōu)化企業(yè)管理流程04-16

色彩在設(shè)計(jì)中的應(yīng)用方法12-19

Linux系統(tǒng)守護(hù)進(jìn)程的啟動(dòng)方法12-15

企業(yè)能力分析的方法04-30