999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式多級緩存技術在選課系統中的應用

2014-04-03 02:02:28莫洪武
廣西教育·C版 2014年2期

【摘 要】針對高校進行網上選課時Web應用服務器延遲比較大甚至宕機的現象,采用為Web應用服務器構建分布式多級緩存的辦法,可以有效解決Web服務器吞吐量不夠和響應時間比較長的問題。

【關鍵詞】分布式 多級緩存技術 選課系統

【中圖分類號】 G 【文獻標識碼】A

【文章編號】0450-9889(2014)02C-0183-03

一、高校選課系統現狀分析

高校選課系統大部分都采用B/S三層結構,瀏覽器、Web應用服務器和數據庫服務器,同時為了保證數據的一致性和完整性,數據庫服務器一般只有一個,而應用服務器可以設置多個,邏輯結構描述如圖1所示。當多個Web應用服務器在大量用戶并發提出的請求時,因為操作數據庫是串行執行,那么勢必導致用戶請求很久都得不到回應,延遲時間比較長,甚至出現瀏覽器頁面超時等現象。

圖1 高校教務系統的典型邏輯架構

針對選課系統現有的狀況,必須進行相應的改進,以提高Web應用服務器的服務質量。緩存技術是其中比較熱點的解決辦法,它可以緩存數據庫中的數據對象,也可以緩存中間處理對象和結果對象。搭建一個緩存服務器顯然作用不大,在本文中將采用分布式緩存服務器集群的方式,也就是采用Web應用服務器分布式緩存技術,這樣可以極大改善現有服務器所面臨的高負載問題,提高Web應用服務器的吞吐量,降低響應時間,解決數據庫的伸縮性等問題。

二、選課系統緩存對象分析與設計

在設置緩存之前,首先要弄清楚選課的整個流程,里面所涉及的對象,分析出其中的數據對象、過程對象和結果對象,之后考慮如何對這些對象進行緩存。

(一)選課系統流程分析。在學生進行搶選課的時候,首先進入課程頁面找到自己喜歡的課程,如果該課程沒有達到限定的選課人數,那么學生選擇該課程成功,否則只能選擇其他課程;然后當選擇的課程通過后,便會進入該課程對應的教師頁面,學生搶選自己喜歡的任課教師,如果該任課教師沒有達到限定人數,那么該學生選教師成功,也就意味著該課程整體搶選成功,否則該學生只能再選擇其他教師。在選課過程中或選課結束后,學生可以隨時通過結果頁面查看自己選課的總體情況,以便作出調整。通過以上分析,可以得到如圖2選課系統流程圖。

圖2 選課子系統流程圖

(二)緩存對象分析。經過分析,在高校選課系統中可以進行緩存的對象包括以下對象:課程信息對象,可以是數據對象,也可以是課程信息所形成的頁面對象;課程人數限制信息,這個屬于數據對象;課程已選人數信息,這個屬于數據對象;教師信息對象,這個可以是數據對象,也可以是教師信息所形成的頁面對象;教師人數限制信息,這個屬于數據對象;教師已選人數信息,這個屬于數據對象;選課結果信息,可以是數據對象,也可以是結果形成的頁面對象。因此得出結論,這些信息都可以以數據對象的形式存儲。

(三)緩存對象分類。選課系統可緩存的數據對象各有其特點,因此這些數據對象不能全部以統一的方式進行緩存,按照這些數據對象的特點,把這些數據對象分為參考數據對象、活動數據對象和資源數據對象。參考數據對象是指主要用于讀取的數據對象,雖然這些數據對象很少有寫入操作,卻因為讀取數據對象的用戶數量較大,數據對象檢索和列表也會產生巨大的數據對象條目。活動數據對象是指進行讀取和寫入的數據,這些數據對象是可以調整變化的,而且存在是短暫的。資源數據指的是同時進行讀寫的數據對象。

按照以上分析,選課系統中的參考數據對象包括課程數據對象、課程人數限制數據對象、教師數據對象和教師人數限制數據對象;活動數據對象包括選課結果數據對象、課程已選人數數據對象和教師已選人數數據對象。

(四)緩存邏輯模型設計。根據選課子系統可緩存對象的分析結果,分為三種不同的數據對象,那么在緩存這些數據對象的時候,需要在內存中建立對應獨立的存儲結構單元,稱之為命名緩存。這些命名緩存之間完全互相隔離,互不干擾,當有多個應用程序共享同一個緩存集群時,可以為每個應用程序分別建立命名緩存。在同一個命名緩存中,對同類型的數據對象,但是內容不通的,需要對命名緩存進行分區,這樣即可以解決數據沖突的問題,極大地提高檢索效率。這樣就得出一種新的緩存服務中數據對象新的邏輯模型,如圖3所示。

圖3 緩存邏輯模型設計

在本文的選課系統中,將參考數據對象類型命名為MyBasicData,并根據內容不同進行分區,分為課程數據對象分區、課程限制人數數據對象分區、教師數據對象分區和教師人數限制數據對象分區等;活動數據對象類型命名為MyActiveData,劃分為選課結果數據對象分區、課程已選人數分區和教師已選人數分區等;資源數據對象類型命名為MySourceData。

三、構建基于JBoss Cache3.0分布式多級緩存

(一)分布式多級緩存邏輯架構設計。根據選課系統的特點,這些可被緩存對象基本上都是數據對象,因此可以在構建分布式緩存的時候,把緩存加到數據庫服務器和Web應用服務器之間,用緩存服務器緩存數據庫服務器中的數據對象,這樣可以有效解決數據庫服務器的伸縮性問題,極大緩解數據庫服務器的壓力。圖4展示的便是構建的Web應用服務器分布式緩存架構,主要分為數據層、緩存層、應用服務層和用戶層。

當用戶訪問應用服務內容的時候,Web應用服務器的應用程序查看數據對象是否可以在其對應的緩存服務器中獲取,如果該數據對象在該緩存服務器中不存在,則查看分布式緩存其他結點緩存服務器中是否存在,直到找到所需的數據對象為止。如果整個分布式緩存中都不存在,便去操作數據庫,獲取到所需的數據對象,并嘗試將該對象加載到分布式緩存中。

除建立服務器端緩存外,還需要建立應用服務層和本地緩存,以加快用戶檢索數據。同時保障應用服務層和本地緩存要與服務端對象具有一致性,對象從數據庫服務器檢索到分布式緩存,緩存再把對象存儲到應用服務層和客戶端,這樣便形成了Web應用服務器分布式多級緩存。當用戶發出請求時,服務首先查看本地緩存中是否存在相應對象,如果沒有,則到服務端即緩存層查找,如果有則返回對象并同時更新應用服務層和客戶端緩存。沒有則到數據庫查找到數據對象緩存到服務端并同時緩存到應用服務層和客戶端。

圖4 分布式緩存架構

(二)構建基于JBoss Cache3.0的Web應用服務器分布式多級緩存解決方案。JBoss Cache3.0是一個復制的事務處理緩存,它允緩存企業級應用數據來更好的改善應用服務器的性能。緩存服務器結點構成樹形邏輯結構,節點間利用JGroup進行多播通信,節點間緩存數據將被自動復制,形成分布是緩存集群。因此利用JBoss Cache3.0在Web應用服務器和數據數據庫之間建立分布式緩存,形成緩存層(如圖5所示)以分解數據庫服務器的壓力是一個可行的解決方案。

圖5 基于JBoss Cache3.0分布式緩存配置

1.替換策略設計。JBoss Cache3.0的緩存參數配置。配置是基于XML文檔的,其中有兩個關鍵參數是必須進行配置的。WakeUpIntervalSeconds參數定義替換線程多少時間運行一次,PolicyClass參數定義所采用哪種替換策略,如果不進行配置,將采用基于LRU算法的替換策略,也可以替換成其他替換策略。

命名緩存和緩存分區。在建立JBoss Cache3.0分布式緩存的時候,按照2節中的對象類型分析,需要命名多個不同的緩存和分區,分別緩存不同類型的數據,即命名MyBasicData用來存儲參考數據,命名MyActiveData用來存儲活動數據和命名MySourceData用來存儲資源數據等。

2.構建分布式多級緩存。JBoss Cache3.0支持多級緩存,即支持服務層緩存和本地緩存。本地緩存不參與集群,并且也不與集群中其他緩存通信,通過串行化,用戶在任意時間修改緩存模式。服務層緩存采用樹形結構形成集群,集群節點之間利用JGroup建立可靠的組播通信,緩存更新采用同步或異步模式進行復制。在本案例中,建立一個名為TreeCache.xml的配置文件,在里面設置集群名稱、設置緩存復制模式和JGroup通信配置等,然后部署到JBoss應用服務器中。

在基于JBoss Cache3.0分布式緩存中,緩存當用戶發出請求時,服務首先查看本地和應用服務緩存中是否存在相應數據,如果沒有,則到JBoss Cache3.0服務端即緩存層查找,如果有則返回數據并同時更新應用服務器和客戶端緩存。沒有則到數據庫查找到數據緩存到JBoss Cache3.0服務端并同時更新應用服務器和客戶端緩存。

在以上集成架構中,通過利用部署在中間層的JBoss Cache3.0,應用服務的可伸縮性、性能水平和可用性都得到了相當大的提高,更具體地說,提高了服務架構的可擴展性,實現了盡可能減少對數據庫資源的爭奪,注入更多的靈活性。可擴展性的架構可以根據不同服務節點的資源使用情況,進行動態調節用戶到不同的服務節點,從而提高響應時間,降低了延遲。通過JBoss Cache3.0高可用性的集群,可以在某個節點發生故障的時候,降低數據損失。

四、分布式緩存技術在選課系統中的應用實踐

廣西農業職業技術學院選課系統應用服務器為JBossAS 5.0,在實際應用之前利用LoadRunner8.1針對建立JBoss Cache3.0分布式多級緩存前后進行壓力測試。首先利用LoadRunner的VuGen分別錄制在建立緩存之前與建立緩存之后兩種環境下網上選課系統的腳本,然后利用Controller模擬50虛擬用戶、100虛擬用戶、150虛擬用戶和200虛擬用戶、250用戶對該系統的訪問,然后生成結果分析比較,發現配置緩存后,服務的吞吐量(如圖6所示)和點擊率(如圖7所示)都得到很大提高。

圖6 有無緩存吞吐量比較圖

圖7 有無緩存點擊率比較圖

通過驗證之后,基于JBoss Cache3.0分布式緩存技術已經被用在廣西農業職業技術學院選課系統中得到應用,有效解決了幾千人同時并發訪問Web應用服務器宕機的問題。

因此,在Web應用服務器中構建分布式多級緩存,當緩存層中緩存服務器數量足夠多的情況下,可以大大提高Web應用服務器的服務質量。所以Web應用服務器分布式多級緩存是一個切實可行的提高Web應用服務器性能的解決方案。

綜上所述,針對廣泛應用的選課系統的所面臨的高負載問題,為其建立Web應用服務器中構建分布式多級緩存,通過實際應用與模擬驗證發現對Web應用服務器的性能有提高作用,為解決高校選課系統延遲大甚至宕機的問題提供了一種切實可行的辦法。

【參考文獻】

[1]王瑜,侯整風.緩存技術在在線考試系統中的應用[J]. 山東理工大學學報(自然科學版),2011 (5)

[2]王鑫.緩存技術在Web應用中的研究[J].濰坊學院學報,2011(4)

[3]劉妍,古志民.多重請求調度的分布式Web 緩存集群設計[J]. 裝備指揮技術學院學報,2006(12)

[4]鐘一青. 基于內容分發的cache集群系統[J].電腦與信息技術,2006(3)

[5]莫洪武.基于Velocity CTP3 分布式多級緩存的研究與應用[J].軟件導刊.2010(10)

[6]韓英杰,石磊,基于最小延遲代價的Web 緩存替換算法研究[J]. 計算機工程與設計,2008(8)

【基金項目】2012年度廣西高等學校立項科研項目(201204LX620)

【作者簡介】莫洪武(1980- ),男,黑龍江拜泉人,廣西農業職業技術學院講師,研究領域:軟件技術。

(責編 黎 原)

主站蜘蛛池模板: 秋霞一区二区三区| 欧洲一区二区三区无码| 视频二区中文无码| 91人人妻人人做人人爽男同| 国产玖玖玖精品视频| 欧美成人精品一级在线观看| 日韩国产综合精选| 国产jizz| 91毛片网| 91丝袜在线观看| 伊人久热这里只有精品视频99| 国产国产人成免费视频77777| 素人激情视频福利| 99热国产这里只有精品9九 | 久久久久国色AV免费观看性色| 国产熟睡乱子伦视频网站| 精品黑人一区二区三区| 色婷婷亚洲综合五月| 成人另类稀缺在线观看| 制服无码网站| 狠狠色噜噜狠狠狠狠色综合久 | 夜夜操国产| 九色最新网址| 免费在线视频a| 欧美精品v日韩精品v国产精品| 国产后式a一视频| 国产国模一区二区三区四区| 麻豆精品在线| 国产精品成人观看视频国产| 亚洲熟妇AV日韩熟妇在线| 日本高清免费不卡视频| 国产在线观看91精品| 性欧美在线| jizz在线观看| 午夜福利在线观看入口| 欧美日韩亚洲国产主播第一区| 久久精品66| 91青青草视频| 国产精品第一区| 色综合天天综合中文网| 91精品伊人久久大香线蕉| 91精选国产大片| 亚洲美女一区| 婷婷成人综合| 亚洲国产清纯| 中国黄色一级视频| 人妻91无码色偷偷色噜噜噜| 一区二区三区国产| 欧美乱妇高清无乱码免费| 日韩在线永久免费播放| 亚洲成aⅴ人片在线影院八| 91久久偷偷做嫩草影院电| 精品小视频在线观看| 国产精品久久久久无码网站| 国产精品大白天新婚身材| 国产精品自在在线午夜| 欧美.成人.综合在线| 久久99精品国产麻豆宅宅| 黄色污网站在线观看| 国产欧美自拍视频| 久久国产亚洲欧美日韩精品| 日本草草视频在线观看| 中文字幕在线欧美| 免费久久一级欧美特大黄| 亚洲欧美精品在线| 91美女视频在线| 亚洲国产成熟视频在线多多| 亚洲丝袜第一页| 日本五区在线不卡精品| 久久超级碰| 成人日韩精品| 中文字幕人成乱码熟女免费| 91成人免费观看| 国产成人精品一区二区免费看京| aa级毛片毛片免费观看久| 91热爆在线| 国产乱子伦手机在线| 国产精品精品视频| 欧美激情第一区| 亚洲男人的天堂在线| 中文国产成人久久精品小说| 亚洲美女一级毛片|