J2EE應(yīng)用的核心策略
對(duì)于J2EE,我們知道當(dāng)開發(fā)應(yīng)用時(shí),在架構(gòu)設(shè)計(jì)階段的決定將對(duì)應(yīng)用的性能和可擴(kuò)展性產(chǎn)生深遠(yuǎn)的影響。現(xiàn)在當(dāng)開發(fā)一個(gè)應(yīng)用項(xiàng)目時(shí),我們?cè)絹碓蕉嗟刈⒁獾搅诵阅芎涂蓴U(kuò)展性的問題。應(yīng)用性能的問題比應(yīng)用功能的不豐富問題往往更為嚴(yán)重,前者會(huì)影響到所有用戶,而后者只會(huì)影響到碰巧使用該功能的那些用戶。
作為應(yīng)用系統(tǒng)的負(fù)責(zé)人,一直被要求"要少花錢多辦事"----用更少的硬件,更少的網(wǎng)絡(luò)帶寬,以及更短的時(shí)間完成更多的任務(wù)。J2EE通過提供組件方式和通用的中間件服務(wù)是目前首選的最優(yōu)方式。而要能夠構(gòu)建一個(gè)具有高性能和可擴(kuò)展性的J2EE應(yīng)用,需要遵循一些基本的架構(gòu)策略。
緩存(Caching)
簡(jiǎn)單地說,緩存中存放著頻繁訪問的數(shù)據(jù),在應(yīng)用的整個(gè)生命周期中,這些數(shù)據(jù)存放在持久性存儲(chǔ)器或存放在內(nèi)存中。在實(shí)際環(huán)境中,典型的'現(xiàn)象是在分布式系統(tǒng)中每個(gè)JVM中有一個(gè)緩存的實(shí)例或者在多個(gè)JVM中有一個(gè)緩存的實(shí)例。
緩存數(shù)據(jù)是通過避免訪問持久性存儲(chǔ)器來提高性能的,否則會(huì)導(dǎo)致過多的磁盤訪問和過于頻繁網(wǎng)絡(luò)數(shù)據(jù)傳輸。
復(fù)制
復(fù)制是通過在多臺(tái)物理機(jī)器上創(chuàng)建指定應(yīng)用服務(wù)的多個(gè)拷貝來獲得整體更大吞吐效率。理論上看,如果一個(gè)服務(wù)被復(fù)制成兩個(gè)服務(wù),那么系統(tǒng)將可處理兩倍的請(qǐng)求。復(fù)制是通過單一服務(wù)的多個(gè)實(shí)例的方式從而減少每個(gè)服務(wù)的負(fù)載來提高性能的。
并行處理
并行處理將一個(gè)任務(wù)分解為更為簡(jiǎn)單的子任務(wù),并能夠同時(shí)在不同的線程中執(zhí)行。
并行處理是通過利用J2EE層執(zhí)行模式的多線程和多CPU特點(diǎn)來提高性能。與使用一個(gè)線程或CPU處理任務(wù)相比,以并行方式處理多個(gè)子任務(wù)可以使操作系統(tǒng)在多個(gè)線程或處理器中進(jìn)行分配這些子任務(wù)。
異步處理
應(yīng)用功能通常被設(shè)計(jì)為同步或串行方式。異步處理只處理那些非常重要的任務(wù)部分,然后將控制立即返回給調(diào)用者,其他任務(wù)部分將在稍后執(zhí)行。
異步處理是通過縮短那些在將控制返回給用戶之前必須處理的時(shí)間來提高性能的。雖然都做同樣多的事情,但是用戶不必等到整個(gè)過程完成就可以繼續(xù)發(fā)出請(qǐng)求了。
資源池
資源池技術(shù)使用的是一套準(zhǔn)備好的資源。與在請(qǐng)求和資源之間維持1:1的關(guān)系的不同,這些資源可被所有請(qǐng)求所共享。資源池的使用是有條件的,需要衡量下面兩種方式的代價(jià):
A、維持一套可被所有請(qǐng)求共享資源的代價(jià)
B、為每個(gè)請(qǐng)求都重新創(chuàng)建一個(gè)資源的代價(jià)
當(dāng)前者小于后者時(shí),使用資源池才是有效率的。
希望通過本文介紹的是J2EE中的五個(gè)核心策略,對(duì)你有幫助。
【J2EE應(yīng)用的核心策略】相關(guān)文章:
J2EE核心技術(shù)12-05
j2ee的控制策略11-15
J2EE控制策略12-05
J2EE的13種核心技術(shù)11-02
J2EE的13種核心技術(shù)簡(jiǎn)介11-15
折疊J2EE的核心API與組件積累11-11
J2EE表現(xiàn)層設(shè)計(jì)思考核心11-13
高性能J2EE應(yīng)用的技巧10-15