《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 集群環境下CMS的核心架構設計

集群環境下CMS的核心架構設計

2009-09-23
作者:祁 暉,王 佳

  摘 要: 通過對非集群環境與集群環境的比較分析,提出了一種適合集群環境的CMS最核心部分(發布、查看新聞,上傳、下載新聞附件)的架構設計,它是對非集群環境架構設計的改良。通過將文件存儲在數據庫服務器中,而應用服務器存儲文件的副本,從而解決了非集群環境的架構移植到集群環境時導致文件無法正常更新的問題。最后通過引入緩存機制,使得這種架構設計在性能方面有了較大的改進。
  關鍵詞: 集群;內容管理系統;新聞發布系統;架構;緩存

?

  CMS的應用相當廣泛,大到門戶或商業網站,小到個人網站。開源的CMS也非常多,如OpenCMS、Infoglue等。一個功能強大的CMS可以對內容進行分類管理,定制內容屬性,定制界面,增加、刪除、修改、查看內容,增加、刪除、查看附件等。筆者曾經開發過一個具備以上功能的CMS,此系統所使用的技術與Infoglue十分相似,都是基于J2EE技術構建的。這個CMS先后被2個政府網站所使用,運行在單應用服務器環境,到目前為止一直運行穩定。系統的核心部分,即內容管理和附件管理部分還被集成到一個職稱評審系統中,起初在測試環境(單應用服務器環境)下運行還很穩定,但被部署到生產環境(集群環境)時就出現了很多問題,因此需要對系統的架構進行重新設計。
1 非集群環境下CMS的核心架構
  非集群環境系統結構如圖1所示。這是1個非常典型的單服務器環境,由1臺Web服務器、1臺應用服務器和1臺數據庫服務器組成。CMS主要被部署到應用服務器上。

?

  一條新聞通常由標題、作者、更新日期、正文以及附件等部分組成。一種設計是將所有這些信息都保存到數據庫中,當用戶查看新聞時,需要從數據庫中讀取新聞的所有信息。這種設計有2個非常大的缺點:(1)對于新聞正文、附件等大數據量的信息(正文長度通常在幾KB到幾十KB之間,附件更大),在傳輸到用戶瀏覽器的過程中必須從數據庫服務器傳輸到應用服務器,然后再傳輸到Web服務器,最后傳輸到瀏覽器。其傳輸路徑長,經過的節點多,當用戶訪問量大的時候,響應用戶的時間長。(2)不利于建立全文檢索。由于正文或附件等是以字節流的形式存儲在數據庫服務器中,而數據庫并不提供針對字節流數據的搜索功能,因此,幾乎不可能為正文或附件建立全文檢索。
  一種改進的設計是將新聞正文和附件以文件形式存儲在應用服務器的磁盤中,而新聞的其他信息則存儲在數據庫里。這樣,用戶在查看新聞或者下載附件時,獲取正文、附件這些信息就不需要進行數據庫操作,而直接從應用服務器磁盤中讀取文件,從而減少了應用服務器與數據庫服務器之間的通信量,提高了系統的響應速度。此外,還可以對正文和附件文件建立全文檢索。這種設計也有缺點,由于存儲在應用服務器的可靠性不如存儲在數據庫服務器高,因此,需要經常備份應用服務器中存儲的正文、附件等文件。相比于對系統性能的提高和提供全文檢索功能來說,代價還是比較小的,因此筆者開發的CMS采用第二種設計。
2?系統部署在集群環境下時遇到的問題
  職稱評審系統在正式使用時需要部署在集群環境中,集群環境的系統結構如圖2所示。

  集群環境通常有多臺Web服務器、多臺應用服務器和多臺數據庫服務器。集群環境能夠提供更高的性能、更可靠的服務。CMS主要部署在應用服務器集群上,每臺應用服務器上都有一個獨立的CMS。假設如圖3所示情形,設A、B兩臺應用服務器的時間是同步的。
????????

?

  a時刻:管理員請求添加新聞,應用服務器集群中只會有一臺服務器提供服務,即應用服務器A。此時,應用服務器A中就保存了新聞的正文文件、附件文件,而數據庫服務器中保存了新聞的標題、作者和更新時間等。
  b時刻:用戶請求查看新添加的新聞,請求被路由到應用服務器B,此時,可以從數據庫中讀取新聞的標題、作者和更新時間等信息,但是新聞的正文和附件卻無法獲取,因為正文和附件存儲在應用服務器A上,而集群環境下各臺應用服務器是相對獨立的,A服務器的改變并不會影響到B服務器。為此,需重新設計系統的結構,以適應集群環境。
3?系統的重新設計
  系統在集群環境下遇到的問題主要是由于正文和附件只保存在應用服務器上,而各個應用服務器之間又是互相獨立的,不能得到同步更新。為解決這個問題,決定將正文和附件保存到應用服務器上的同時,保存到數據庫服務器上,在數據庫中還必須存儲應用服務器上正文和附件的文件更新時間。當用戶請求查看新聞正文或下載附件時,系統先在應用服務器上查找該文件,如果文件不存在,則到數據庫服務器上查找,并將文件從數據庫服務器導入到應用服務器上,然后再將應用服務器上的文件傳輸到瀏覽器;如果文件存在應用服務器上,此時是否可以直接將應用服務器上的文件傳輸到瀏覽器?這是一個需要進一步討論的問題。假設存在如圖4所示一種情況,設A、B兩臺應用服務器的時間是同步的。

?

?

  a時刻:管理員請求添加正文,此時正文文件被保存到應用服務器A上,同時保存到數據庫服務器上,數據庫中記錄的正文文件更新時間是a。
  b時刻:用戶請求查看管理員在a時刻添加的正文,b必定大于a。用戶被路由到應用服務器B上,由于B上并不存在正文文件,于是系統到數據庫服務器上查找正文,并將正文從數據庫服務器傳輸到應用服務器B上,保存成正文文件。此時,應用服務器B上就記錄了正文文件的更新時間b。
  c時刻:管理員請求修改正文,假設c>b。管理員被路由到應用服務器A上,此時應用服務器A上修改了正文文件,同時數據庫服務器上修改正文文件的更新時間為c。
  d時刻:用戶請求查看正文,假設d>c。用戶被路由到應用服務器B上,此時B上已經存在正文文件。如果直接將這個正文文件傳輸給用戶,則用戶看到的是管理員在a時刻添加的正文,而管理員在c時刻修改了正文,因此用戶看到的并不是最新的正文。
  解決方案如下:如果系統能夠在應用服務器上查找到正文文件,則需要將正文文件的更新時間與數據庫中記錄的正文更新時間進行比較,如果前者大于等于后者,則證明應用服務器中的正文文件是最新的,可以直接傳輸給用戶;否則,證明在應用服務器載入正文文件之后管理員更新了正文,應用服務器中的正文文件不是最新的,如上例中b

4?系統性能的改進
  系統經過重新設計之后,已經可以在集群環境下正常地運行。但是,當用戶請求查看新聞正文或請求下載附件時,假定系統能夠在應用服務器上直接命中正文文件或附件文件(絕大多數情況下也正是如此),系統還需要比較文件在應用服務器上的更新時間和數據庫服務器中記錄的文件更新時間,這樣就需要一次數據庫查詢操作。用戶每查看一次新聞正文或請求下載附件就需要查詢一次數據庫,增加了數據庫的負擔。為了減少數據庫訪問次數,可以為系統添加緩存組件,用于緩存數據庫中的數據。對于CMS來說,緩存中存儲的就是新聞對象和附件對象,前者包含標題、作者和正文更新時間等屬性,后者包含文件名和文件更新時間等屬性。緩存組件被添加到系統后,當用戶請求查看新聞正文或下載附件時,緩存組件的活動如圖6所示。
????????


  當需要比較文件在應用服務器上的更新時間與數據庫中記錄的文件更新時間時,就向緩存組件請求新聞對象或附件對象。圖6所示為請求新聞對象時緩存組件的活動,請求附件對象時緩存組件的活動與此類似。
  使用緩存容易產生臟數據。為了保證緩存中的對象能夠得到更新,可以設定緩存的過期時間,例如5 min。經過這番改進,能夠有效地減少數據庫的訪問次數,減輕數據庫的負擔,提高系統的響應速度。
  本文所介紹的CMS核心架構設計可以用于構建大型的門戶或商業網站,能夠在集群環境下穩定運行。當用戶訪問量增加時,并不會明顯增加數據庫服務器的負擔,系統的負載能力主要和應用服務器集群中的服務器數量有關。由于系統的所有數據都存儲在數據庫服務器中,應用服務器中的文件只不過是數據庫中數據的副本,因此數據的可靠性和安全性都有了很大的提高,同時,還可以對應用服務器中的文件建立全文檢索以提供更強大的搜索功能。系統穩定運行的一個前提是應用服務器集群中的各個服務器的時間必須同步,目前已經有技術可以保證這一需求。

參考文獻
[1]?ARLOW J, NEUSTADT I.UML 2 and the unified process[M].Addison-Wesley Professional, 2005.
[2]?孫衛琴.精通Hibernate—Java對象持久化技術詳解[M].北京:電子工業出版社,2005.
[3]?吳少剛,陳曉玲.J2EE應用服務器集群性能研究[J].計算機工程與設計,2007,28(18):4410-4412.
[4]?叢林,楊揚,李曉東,等.基于企業服務總線的內容管理系統的研究應用[J].計算機應用研究,2007(1):255-257.
[5]?夏純中.輕量級企業內容管理系統的設計與實現[J].計算機工程與設計,2007,28(17):4233-4236.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品一区在线观看| 亚洲一区二区日本| 国产精品久久久久久av下载红粉| 一片黄亚洲嫩模| 黄色工厂这里只有精品| 国产视频一区二区三区在线观看| 美女日韩欧美| 欧美日韩1080p| 欧美在线观看一二区| 国产一区日韩欧美| 亚洲精品日韩激情在线电影| 国产精品一区二区久久久久| 国产毛片一区| 国产精品久久国产愉拍| 亚洲桃色在线一区| 亚洲欧洲一区二区在线播放| 亚洲一级片在线观看| 亚洲综合色自拍一区| 欧美成人综合在线| 欧美日本国产一区| 亚洲无亚洲人成网站77777| 欧美片第1页综合| 国产精品久久久久久超碰| 欧美日韩亚洲一区二区三区在线| 欧美金8天国| 亚洲精品网站在线播放gif| 国产乱码精品| 激情懂色av一区av二区av| 国内不卡一区二区三区| 日韩视频三区| 久久久久一区二区三区四区| 欧美成人中文| 美女网站久久| 亚洲国产日韩欧美综合久久| 一区二区三区国产精品| 亚洲精品影视在线观看| 久久久综合免费视频| 久久久久久欧美| 欧美视频一区二区| 久久久久国色av免费看影院| 国产精品美女久久久久久2018| 亚洲人成网站在线播| 久久久久久久性| 一区二区欧美日韩| 亚洲另类在线视频| 久久久青草青青国产亚洲免观| 亚洲午夜精品久久| 亚洲日本va在线观看| 先锋亚洲精品| 久久午夜色播影院免费高清| 欧美日韩亚洲一区在线观看| 韩国v欧美v日本v亚洲v| 亚洲第一中文字幕在线观看| 国产欧美一区二区三区视频| 美女主播精品视频一二三四| 国产一区二区三区的电影| 影音先锋亚洲视频| 欧美极品一区二区三区| 99精品视频免费观看| 亚洲小说欧美另类社区| 亚洲美女精品成人在线视频| 亚洲人体一区| 亚洲欧洲一区二区天堂久久| 国产精品伦子伦免费视频| 一区二区高清在线| 亚洲午夜精品17c| 香蕉国产精品偷在线观看不卡| 亚洲国产精品成人久久综合一区| 亚洲激情成人网| 亚洲高清久久久| 美女脱光内衣内裤视频久久网站| 亚洲视频一区二区免费在线观看| 黄色国产精品| 亚洲影视在线播放| 亚洲天堂成人| 国产精品揄拍一区二区| 国产一区二区视频在线观看| 国产欧美日韩在线观看| 久久大香伊蕉在人线观看热2| 欧美精品少妇一区二区三区| 先锋影音国产精品| 久久中文在线| 国产精品99久久久久久宅男| 亚洲五月婷婷| 国产精品国产三级国产aⅴ无密码| 欧美日本成人| 在线精品国产成人综合| 在线免费观看一区二区三区| 欧美性一区二区| 欧美黄色aaaa| 欧美日韩国产美女| 亚洲区第一页| 亚洲视频导航| 亚洲图片激情小说| 亚洲另类春色国产| 国产精品区一区二区三| 欧美日韩亚洲一区二区三区在线观看| 久热综合在线亚洲精品| 国产一区视频在线观看免费| 99精品国产热久久91蜜凸| 欧美日韩国产区一| 99热精品在线观看| 性做久久久久久| 欧美激情在线狂野欧美精品| 欧美亚洲系列| 亚洲激情在线观看视频免费| 一卡二卡3卡四卡高清精品视频| 欧美一级视频一区二区| 蜜桃av噜噜一区| 亚洲国产成人午夜在线一区| 麻豆久久精品| 国产欧美在线播放| 国产精自产拍久久久久久蜜| 最新日韩精品| 99精品欧美一区| 国产亚洲网站| 欧美在线一二三四区| 亚洲国产日韩在线一区模特| 欧美激情按摩在线| 国产精品一区二区久久久久| 亚洲图片欧洲图片av| 日韩亚洲综合在线| 国产一区二区精品久久| 欧美日韩国产精品| 久久久综合网站| 99re6这里只有精品| 欧美区国产区| 亚洲人成在线影院| 亚洲国产一区二区三区在线播| 亚洲国产婷婷综合在线精品| 欧美日本一道本在线视频| 男女激情久久| 亚洲午夜久久久久久久久电影院| 久久成人精品电影| 亚洲欧洲日本一区二区三区| 国产精品日韩欧美一区二区| 亚洲精品综合在线| 欧美日韩国产综合视频在线观看| 欧美在线播放一区二区| 欧美剧在线免费观看网站| 午夜精品av| 久热精品在线视频| 国产亚洲aⅴaaaaaa毛片| 亚洲国产精品va在线观看黑人| 欧美性jizz18性欧美| 亚洲综合日韩中文字幕v在线| 欧美色欧美亚洲另类七区| 午夜免费电影一区在线观看| 国产伦精品一区二区三区视频孕妇| 日韩亚洲欧美成人一区| 久久久福利视频| 毛片av中文字幕一区二区| 国产欧美亚洲视频| 久久av一区二区三区漫画| 夜夜夜精品看看| 亚洲私人黄色宅男| 国内精品久久久久久| 国产美女搞久久| 欧美二区在线| 国产精品日韩久久久| 亚洲经典一区| 欧美人与禽性xxxxx杂性| 欧美国产专区| 国产噜噜噜噜噜久久久久久久久| 亚洲九九九在线观看| 国产精品亚洲综合久久| 一区二区三区在线免费播放| 夜夜嗨av色综合久久久综合网| 亚洲国产日韩一区二区| 91久久精品国产91久久| 亚洲性感美女99在线| 国产在线国偷精品产拍免费yy| 欧美亚洲在线视频| 亚洲精品一级| 亚洲激情二区| 久久在精品线影院精品国产| 欧美在线观看一区二区三区| 欧美日韩国产专区| 久久亚洲精品一区| 性色av一区二区三区红粉影视| 美国十次成人| 精品成人一区二区三区四区| 国产一区免费视频| 久久这里有精品视频| 一区二区三区在线免费观看| 久久精品视频免费观看| 欧美日韩亚洲视频一区| 久久精品人人做人人综合| 免费观看欧美在线视频的网站| 国产喷白浆一区二区三区| 久久综合网色—综合色88| 另类尿喷潮videofree| 亚洲区一区二| 亚洲国产欧美国产综合一区| 91久久久精品| 另类人畜视频在线| 巨乳诱惑日韩免费av| 国产精品午夜av在线| 欧美精品123区| 亚洲欧美日韩国产一区| 欧美日韩一区二区三区| 亚洲久久一区二区| 一区在线视频观看| 欧美午夜精彩| 国产一区二区三区精品欧美日韩一区二区三区| 欧美激情精品久久久久久黑人| 国产精品视频九色porn| 欧美视频一区二区三区| 亚洲人成网站色ww在线| 久久精品国产99国产精品澳门| 亚洲三级免费观看| 国产精品视频午夜| 欧美三级黄美女| 欧美另类专区| 久久精品视频在线观看| 欧美日本韩国一区二区三区| 久久成人精品无人区| 亚洲欧洲一区二区在线观看| 国产亚洲欧美一区二区三区| 国产精品video| 欧美超级免费视 在线| 一本色道久久88综合亚洲精品ⅰ| 国产日韩专区在线| 欧美成人一二三| 亚洲欧美区自拍先锋| 一区二区激情视频| 亚洲日本理论电影| 一区免费观看| 在线一区欧美| 久久久久久久综合日本| 日韩一级二级三级| 一区精品在线| 久久久一区二区三区| 国产精品一二一区| 国语自产精品视频在线看一大j8| 亚洲性线免费观看视频成熟| 免费av成人在线| 亚洲午夜91| 99re6这里只有精品| 欧美亚洲综合久久| 亚洲青涩在线| 亚洲国产成人高清精品| 欧美在线观看网址综合| 国产综合激情| 国产精品任我爽爆在线播放| 欧美国产第一页| 亚洲精品日韩久久| 国产精品美女www爽爽爽视频| 国产精品久久久久久久久久ktv| 午夜精品国产精品大乳美女| 欧美成人r级一区二区三区| 欧美视频一区| 国产真实乱偷精品视频免| 国产精品美女黄网| 欧美日韩亚洲系列| 国产亚洲一区二区三区在线播放| 狠狠色狠狠色综合日日小说| 香港成人在线视频| 久久婷婷麻豆| 欧美高清视频一区二区| 久久gogo国模裸体人体| 亚洲国产精品成人| 国产一区二区三区免费在线观看| 亚洲永久免费精品| 久久精品国产一区二区三| 最新国产精品拍自在线播放| 亚洲高清不卡在线| 久久免费视频网站| 一区二区三区|亚洲午夜| 国产精品日韩欧美一区| 99国产精品久久| 国产一级精品aaaaa看| 亚洲成人在线视频网站| 99精品热视频| 亚洲国产天堂久久综合网| 最新亚洲视频| 亚洲免费电影在线| 亚洲视频欧洲视频| 免费观看在线综合色| 欧美一区2区三区4区公司二百| 国产欧美日韩视频| 亚洲精品一区在线| 亚洲综合日韩中文字幕v在线| 国产精品vvv| 日韩视频―中文字幕| 欧美日本国产一区| 国产在线观看一区| 99国产一区二区三精品乱码| 一区二区三区毛片| 一区二区久久| 欧美日一区二区在线观看| 亚洲影视中文字幕| 久久全国免费视频| 欧美精品一区二区三区四区| 一区二区精品在线观看| 亚洲精品综合在线| 美日韩精品免费| 欧美成人xxx| 亚洲嫩草精品久久| 欧美日韩精品一区视频| 日韩网站免费观看| 欧美日韩精品一区视频| 老牛嫩草一区二区三区日本| 国产日本欧美视频| 久久久夜色精品亚洲| 国产精品毛片大码女人| 国产精品福利在线观看网址| 国产一区二区三区在线观看视频| 欧美在线免费视屏| 一二三区精品福利视频| 欧美—级在线免费片| 免费一区视频| 日韩系列在线| 亚洲一区二区三区高清| 一区二区日韩欧美| 亚洲午夜国产成人av电影男同| 99精品国产福利在线观看免费| 国产在线视频欧美一区二区三区| 亚洲理伦在线| 欧美视频专区一二在线观看| 亚洲黄一区二区| 洋洋av久久久久久久一区| 亚洲国产黄色| 日韩视频一区二区三区在线播放免费观看| 久久九九久精品国产免费直播| 欧美无乱码久久久免费午夜一区| 校园春色国产精品| 久久久精品国产免费观看同学|