系統設計及問題_第1頁
系統設計及問題_第2頁
系統設計及問題_第3頁
系統設計及問題_第4頁
系統設計及問題_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、系統概述。數據庫:Oracle,后期可能增加MySQL 支持。Web Server:Tomcat、WebSphere。操作系統:Web Server 部署在Linux 上;客戶端Windows Windows 、Windows 瀏覽器:IE6-IE11Chrome、Firefox。系統采用目前比較流行的SpringMVC 框架結構,利用Spring 框架的高可配置性,實現程序的靈活配置?,F有系統設計這要求系統能夠有強大的吞吐能力,支持高并發、大數據量的處理。心問題。系統框架本系統是在 MVC 模式基礎上來進行分層,由于本系統開發的工具是Eclipse,在建立工程時開發工具就已經初步把系統分成M

2、VC 三層結構。M(Model)層:M 層主要是用來存實體Bean 類。這些Bean 類主要包含兩類:PO(Persistant Objec:持久對象,用來與后臺數據庫中的表相映射的java對象。 2)V(ValueObjec并將業務數據轉換成客戶表示層所需的數據;和PO 對象一樣,VO 對象也是僅僅包含數據而已,但應是抽象出的業務對象。V(View)層:V 層在本系統中用來數據展示,客戶端主要采用JSP + JQuery + Ajax + JQuery EasyUI組件包技術,通過云桌面的表現形式,實現用戶與系統交互。支持HTML5,客戶端瀏覽器支持IE6-11、Chrome、Firefox

3、。C(Controller)層:C這一層的控制。本系統對CController,ServiceDAOSpringMVC 注解(RequestMapping)實現對客戶端請求的攔截,攔截方法中調用ServiceService 層采用接口 + 實現的實現方式;通過內部對DAO 接口的調用,來完成對數據庫中數據的操作;Service 層對外提供Service 接口,通過接口的實現方式的不同來完成業務邏輯的變更。DAOServiceDAO 也層采用接口 + 實現的實現方式;DAO 層對外提供 DAO以及實現多數據庫的支持。免了各個功能的混淆,方便了程序的開發、維護。系統設計應用程序級設計性能方面:1、

4、對常用的數據進行緩存,提高性能;但數據緩存對內存占有量將會有所提升,要根據實際情況進行綜合考慮。2、對數據的處理代碼讀寫分離,讀操作采用緩存處理,寫操作采用異步處理。3、對常用的數據庫數據,建立索引表;如果必要,可建立冗余索引表。4、充分利用數據庫視圖View、函數Functio、存儲過程Procedur雜的報表,可以使用存儲過程在數據庫端完成數據的分析提取。5、盡量減少程序對數據庫的訪問。對于實時性要求較高的數據,上下級數據采用觸發器進 報教育局,不要求數據的實時上級推送。6Server能分攤到客戶端瀏覽器中,來分擔服務器的壓力。如:客戶端瀏覽器可以通過JS 腳本對服務端傳來的數據進行分析、

5、整理,然后顯示到瀏覽器中。7、MemCache:網站程序開發使用Linux 上提供的Memcachedmemcached內存方面:1AOP (Spring范圍,節省事務內存開支。2、 減少 Session 的使用,盡量使用Cookie。3IOIOIO對系統性能的提升很有必要。4、 代碼檢查,用性能分析工具(如:JProfiler)檢查有沒有內存泄露等問題。系統級設計1、 負載均衡,集群方案LVS + Nginx + Squid + Apache:異步模式,負載平衡。LVS:負載均衡,單點故障,請求轉發。Nginx:異步反相代理, 高并發量處理,應用服務器負載平衡。(Apache 提供的mod_

6、proxySquidnginxGZip 壓縮,這樣可優化squidSquidSquid,apachediskcachememcache。Squidcpu。Apache:在代理和緩存的規則上,apache 功能強大。通過Tomcat 的 Session 復制自動保持 Session 同步,每個Tomcat 保存相同的Session 信息。2、 數據庫集群OracleOracle9i 真正應用集群)。MySQLMaster/Slave3(方法的調整,減少事務的使用范圍。(Oracle 數據庫單表記錄超過 明顯下降。實現數據庫橫向(集訓)和縱向(水平分庫,例如:單數用戶放到 A 數據庫,雙數用戶放到

7、B)的壓力分解。4、圖片服務器分離Web 服務器來說,不管是ApacheIIS系統壓力,并且可以保證系統不會因為圖片問題而崩潰。5、緩存網站架構和網站開發中的緩存也是非常重要。架構方面的緩存,使用外加的SquidApacheLinux 上提供的 Memcached象等內容進行緩存。Jsp + Jquery + Jquery EasyUI + Ajax客戶端Jsp + Jquery + Jquery EasyUI + Ajax軟件四層交換LVS軟件四層交換LVSNginx proxySquid反向代理軟件Nginx proxySquid反向代理軟件(數據緩存)Squid cacheNginx c

8、acheWeb服務器架構Web服務(Apache+tomcat 集群負載均衡)ApacheTomcatTomcatControllerControllerMVC應用架構ModelView(JSP+JqueryEasyUI)應用級緩存數據持久層應用級緩存數據持久層(UCP數據庫連接池、SpringJdbc、Spring事物機制)頁面緩存(OSCache)數據緩存(Memcached)隊列服務(Redis)數據庫集群Oracle數據庫集群OracleMySQL文件共享NFSHDFS系統整體架構上圖闡述了本系統所采用的基本架構,可以從以下幾點進行說明:1LVSNginxApacheTomcatNgi

9、nxTomcat處理。2Nginx squid Squid 只緩存無壓縮版本,由nginx 執行GZipsquid緩存容量。3Apache Tomcat 做集群(塊。Session TomcatSessionSessionTomcatSession Tomcat Down 全的負載均衡。缺點:此架構配置相對復雜,對每服務服務器內存消耗高。4Memcachedmemcached實例的簡便性讓您可以使用多個機器上的多余RAM 來提高您緩存的整體大小。總結:將nginx 再放在Squid 的前面,構成 nginx+Squid+Apachenginxproxy 模塊轉發給Squid,如果 Squid

10、中有該請求的內容且沒有過期,則直接返回給nginxApache 中WebnginxSquidWebnginx以上是現有系統基本設計思路,這種設計存在什么問題或者哪些不足?請夏老師能夠幫忙指正一下。需要解決的問題1、 由于本系統的數據量非常龐大,可能產生 1T 或者幾T,甚至更多的數據量;大數據處理方面經驗不足是主要問題。主要問題集中在以下幾個方面:怎樣能降低多表(大表)關聯查詢、統計造成的性能下降的問題?本系統主要使用Oracle數據庫(后期可能提供MySQL的支持Oracle優化配置方面存在經驗不足的問題。關鍵數據發生變更時都需要保存當時的時間54級排名、班級積分等,只能通過 4 月份時班級的學生快照進行計算獲得,而不能通過當前的班級學生計算得到。這種問題有什么好的解決辦法嗎?2用這種情況下如何保證用戶登錄一個系統后,其他子系統不會被其他人員登錄。3、 現在系統的部署方式是以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論