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