對於j2ee,我們知道當開發應用時,在架構設計階段的決定將對應用的效能和可擴充套件性產生深遠的影響。現在當開發乙個應用專案時,我們越來越多地注意到了效能和可擴充套件性的問題。應用效能的問題比應用功能的不豐富問題往往更為嚴重,前者會影響到所有使用者,而後者只會影響到碰巧使用該功能的那些使用者。
作為應用系統的負責人,一直被要求"要少花錢多辦事"----用更少的硬體,更少的網路頻寬,以及更短的時間完成更多的任務。j2ee通過提供元件方式和通用的中介軟體服務是目前首選的最優方式。而要能夠構建乙個具有高效能和可擴充套件性的j2ee應用,需要遵循一些基本的架構策略。
1. 快取(caching)
簡單地說,快取中存放著頻繁訪問的資料,在應用的整個生命週期中,這些資料存放在永續性儲存器或存放在記憶體中。在實際環境中,典型的現象是在分布式系統中每個jvm中有乙個快取的例項或者在多個jvm中有乙個快取的例項。
快取資料是通過避免訪問永續性儲存器來提高效能的,否則會導致過多的磁碟訪問和過於頻繁網路資料傳輸。
2.複製
複製是通過在多台物理機器上建立指定應用服務的多個拷貝來獲得整體更大吞吐效率。理論上看,如果乙個服務被複製成兩個服務,那麼系統將可處理兩倍的請求。複製是通過單一服務的多個例項的方式從而減少每個服務的負載來提高效能的。
3.並行處理
並行處理將乙個任務分解為更為簡單的子任務,並能夠同時在不同的執行緒中執行。
並行處理是通過利用j2ee層執行模式的多執行緒和多cpu特點來提高效能。與使用乙個執行緒或cpu處理任務相比,以並行方式處理多個子任務可以使作業系統在多個執行緒或處理器中進行分配這些子任務。
4.非同步處理
應用功能通常被設計為同步或序列方式。非同步處理只處理那些非常重要的任務部分,然後將控制立即返回給呼叫者,其他任務部分將在稍後執行。
非同步處理是通過縮短那些在將控制返回給使用者之前必須處理的時間來提高效能的。雖然都做同樣多的事情,但是使用者不必等到整個過程完成就可以繼續發出請求了。
5.資源池
資源池技術使用的是一套準備好的資源。與在請求和資源之間維持1:1的關係的不同,這些資源可被所有請求所共享。資源池的使用是有條件的,需要衡量下面兩種方式的代價:
a、維持一套可被所有請求共享資源的代價
b、為每個請求都重新建立乙個資源的代價
當前者小於後者時,使用資源池才是有效率的。
構建高效能J2EE應用的5種策略
好的開始是成功的一半。對於j2ee同樣如此,我們知道當開發應用時,在架構設計階段的決定將對應用的效能和可擴充套件性產生深遠的影響。現在當開發乙個應用專案時,我們越來越多地注意到了效能和可擴充套件性的問題。應用效能的問題比應用功能的不豐富問題往往更為嚴重,前者會影響到所有使用者,而後者只會影響到碰巧使...
簡單介紹J2EE應用的五種核心策略
對於j2ee,我們知道當開發應用時,在架構設計階段的決定將對應用的效能和可擴充套件性產生深遠的影響。現在當開發乙個應用專案時,我們越來越多地注意到了效能和可擴充套件性的問題。應用效能的問題比應用功能的不豐富問題往往更為嚴重,前者會影響到所有使用者,而後者只會影響到碰巧使用該功能的那些使用者。作為應用...
J2EE應用中常見的反模式
j2ee應用中常見的反模式 anti patterns j2ee應用中有一些常見的毛病和錯誤的觀念,按照時下流行的說法,叫反模式。稍不注意,我們自己也會犯,所以大概整理一下,乙個是備忘,也是供需要的朋友參考 1 無ejb不叫j2ee ejb一直發展到今天的2.1仍然被廣為詬病,它提供了很多時候我們並...