對於J2EE,我們知道當開發應用時,在架構設計階段的決定將對應用的性能和可擴展性產生深遠的影響。現在當開發一個應用項目時,我們越來越多地注意到了性能和可擴展性的問題。應用性能的問題比應用功能的不豐富問題往往更為嚴重,前者會影響到所有用戶,而後者只會影響到碰巧使用該功能的那些用戶。
作為應用系統的負責人,一直被要求"要少花錢多辦事"----用更少的硬件,更少的網絡帶寬,以及更短的時間完成更多的任務。J2EE通過提供組件方式和通用的中間件服務是目前首選的最優方式。而要能夠構建一個具有高性能和可擴展性的J2EE應用,需要遵循一些基本的架構策略。
緩存(Caching)
簡單地說,緩存中存放著頻繁訪問的數據,在應用的整個生命周期中,這些數據存放在持久性存儲器或存放在內存中。在實際環境中,典型的現象是在分布式系統中每個JVM中有一個緩存的實例或者在多個JVM中有一個緩存的實例。
緩存數據是通過避免訪問持久性存儲器來提高性能的,否則會導致過多的磁盤訪問和過於頻繁網絡數據傳輸。
復制
復制是通過在多台物理機器上創建指定應用服務的多個拷貝來獲得整體更大吞吐效率。理論上看,如果一個服務被復制成兩個服務,那麼系統將可處理兩倍的請求。復制是通過單一服務的多個實例的方式從而減少每個服務的負載來提高性能的。
並行處理
並行處理將一個任務分解為更為簡單的子任務,並能夠同時在不同的線程中執行。
並行處理是通過利用J2EE層執行模式的多線程和多CPU特點來提高性能。與使用一個線程或CPU處理任務相比,以並行方式處理多個子任務可以使操作系統在多個線程或處理器中進行分配這些子任務。
異步處理
應用功能通常被設計為同步或串行方式。異步處理只處理那些非常重要的任務部分,然後將控制立即返回給調用者,其他任務部分將在稍後執行。
異步處理是通過縮短那些在將控制返回給用戶之前必須處理的時間來提高性能的。雖然都做同樣多的事情,但是用戶不必等到整個過程完成就可以繼續發出請求了。
資源池
資源池技術使用的是一套准備好的資源。與在請求和資源之間維持1:1的關系的不同,這些資源可被所有請求所共享。資源池的使用是有條件的,需要衡量下面兩種方式的代價:
A、維持一套可被所有請求共享資源的代價
B、為每個請求都重新創建一個資源的代價
當前者小於後者時,使用資源池才是有效率的。
希望通過本文介紹的是J2EE中的五個核心策略,對你有幫助。
【編輯推薦】