構建高效能J2EE應用的五種核心策略
對於J2EE,我們知道當開發應用時,在架構設計階段的決定將對應用的效能和可擴充套件性產生深遠的影響。現在當開發一個應用專案時,我們越來越多地注意到了效能和可擴充套件性的問題。應用效能的問題比應用功能的不豐富問題往往更為嚴重,前者會影響到所有使用者,而後者只會影響到碰巧使用該功能的那些使用者。
作為應用系統的負責人,一直被要求"要少花錢多辦事"----用更少的硬體 ,更少的網路頻寬,以及更短的時間完成更多的任務。J2EE通過提供元件方式和通用的中介軟體 服務是目前首選的最優方式。而要能夠構建一個具有高效能和可擴充套件性的J2EE應用,需要遵循一些基本的架構策略。
快取(Caching)
簡單地說,快取中存放著頻繁訪問的資料,在應用的整個生命週期中,這些資料存放在永續性儲存器或存放在記憶體 中。在實際環境中,典型的現象是在分散式系統中每個JVM中有一個快取的例項或者在多個JVM中有一個快取的例項。
快取資料是通過避免訪問永續性儲存器來提高效能的,否則會導致過多的磁碟訪問和過於頻繁網路資料傳輸。
複製
複製是通過在多臺物理機器上建立指定應用服務的多個拷貝來獲得整體更大吞吐效率。理論上看,如果一個服務被複製成兩個服務,那麼系統將可處理兩倍的請求。複製是通過單一服務的多個例項的方式從而減少每個服務的負載來提高效能的。
並行處理
並行處理將一個任務分解為更為簡單的子任務,並能夠同時在不同的執行緒中執行。
並行處理是通過利用J2EE層執行模式的多執行緒和多CPU特點來提高效能。與使用一個執行緒或CPU處理任務相比,以並行方式處理多個子任務可以使作業系統 在多個執行緒或處理器 中進行分配這些子任務。
非同步處理
應用功能通常被設計為同步或序列方式。非同步處理只處理那些非常重要的任務部分,然後將控制立即返回給呼叫者,其他任務部分將在稍後執行。
非同步處理是通過縮短那些在將控制返回給使用者之前必須處理的時間來提高效能的。雖然都做同樣多的事情,但是使用者不必等到整個過程完成就可以繼續發出請求了。
資源池
資源池技術使用的是一套準備好的資源。與在請求和資源之間維持1:1的關係的不同,這些資源可被所有請求所共享。資源池的使用是有條件的,需要衡量下面兩種方式的代價:
A、維持一套可被所有請求共享資源的代價
B、為每個請求都重新建立一個資源的代價
當前者小於後者時,使用資源池才是有效率的。
相關文章
- 五、Spring Web應用程式構建SpringWeb
- 【譯文】構建大型 Redux 應用的五個建議Redux
- 構建Java物件的五種方法Java物件
- 構建 Go 應用 docker 映象的十八種姿勢GoDocker
- 當前流行的J2EE WEB應用架構分析Web應用架構
- J2EE 核心模式模式
- 構建 API 應用API
- 用VIPER構建iOS應用iOS
- 使用 webpack 構建應用Web
- 靈魂拷問:flutter構建應用的方式是否是一種倒退?Flutter
- 使用汽車應用庫構建應用
- ThinkPHP6 核心分析(五):多應用解析PHP
- Salesforce構建可觀察微服務的五種設計模式Salesforce微服務設計模式
- 如何構建Vue大型應用Vue
- Prompt進階2:LangGPT(構建高效能Prompt策略和技巧)--最佳實踐指南GPT
- 構建現代Web應用的安全指南Web
- 如何構建一個WEB同構應用Web
- 使用webpack構建多頁應用Web
- JavaFX桌面應用-構建程式框架Java框架
- Java應用構建並部署ECSJava
- 五個領域的應用,更多新業務模式,構建區塊鏈的生態圈模式區塊鏈
- Docker映象構建(五)Docker
- 移動應用的測試策略與測試架構架構
- redis的五種資料型別及應用場景Redis資料型別
- 1. 構建您的第一個應用
- [譯]構建現代Web應用的安全指南Web
- Web元件 – 構建商業化應用的基石Web元件
- 使用Electron構建跨平臺的桌面應用
- Redis五種資料型別應用場景Redis資料型別
- Redis 的五種資料結構Redis資料結構
- 微核心架構在大型前端系統中的應用架構前端
- 一文搞懂應用架構的3個核心概念應用架構
- webpack 構建多頁面應用——初探Web
- 在 Laravel 應用中構建 GraphQL APILaravelAPI
- 「譯」使用 Node 構建命令列應用命令列
- LLM學習(四)——構建 RAG 應用
- 初探webpack之單應用多端構建Web
- 使用Spring ViewComponent + htmx構建SpringBoot應用ViewSpring Boot
- 知識圖譜構建與應用