文/李景奇 梁正和 張國寶
河海大學:基于GLASSFISH的負載均衡設計
文/李景奇 梁正和 張國寶
利用負載均衡集群可以使多個應用服務器實例并行工作,提高高性能服務器的資源利用率和應用系統(tǒng)的負載能力。針對目前數(shù)字校園中管理信息系統(tǒng)運行中存在的問題,本文提出了基于Glassfish應用服務器的負載均衡設計方案,以求達到節(jié)約成本、提高性能的目標。
目前在高校中,管理信息系統(tǒng)的建設日益成為信息化的一項基本工作。管理信息系統(tǒng)作為軟件,根據(jù)不同的業(yè)務要求,有不同的硬件需求。高性能計算機運行穩(wěn)定,配置高,性能優(yōu)越,成為管理信息系統(tǒng)基礎硬件的最佳選擇。但如何能利用好高性能計算機,如何提高其利用率,減少硬件支出,同時提供高可靠的服務,成為信息系統(tǒng)建設者的重要問題。
河海大學自主研發(fā)了研究生信息管理系統(tǒng),用戶多,業(yè)務復雜,對應用服務器要求高。目前運行的系統(tǒng)環(huán)境是:浪潮16核64G內(nèi)存服務器,網(wǎng)絡操作系統(tǒng)是REDHATE LINUX5.5,中間件使用Glassfish應用服務器。在使用中我們發(fā)現(xiàn),當用戶量大時經(jīng)常出現(xiàn)應用服務器反應慢甚至死掉的情況。經(jīng)觀察,我們發(fā)現(xiàn)當應用服務器死掉后,機器仍在正常運行,但其CPU及內(nèi)存使用率非常低。經(jīng)過認真研究,發(fā)現(xiàn)存在的問題在于:在Glassfish應用服務器中只有一個獨立實例,即只有一個JVM在運行。而JVM虛擬機的設置的內(nèi)存只有1G,而根據(jù)相關資料,JVM虛擬機的設置的內(nèi)存不宜設置過大或過小,以2G至3G為最佳。但我們硬件服務器是64G內(nèi)存,所以提高性能的關鍵是提高系統(tǒng)硬件的利用率,發(fā)揮高性能服務器的效率。通過調(diào)研,我們準備采取軟件負載均衡,在單機上建立應用服務器集群,建立多個實例,這樣就有多個JVM虛擬機同時工作,從而提高機器的利用率和系統(tǒng)的可用性。
本方案采用軟件負載均衡的方式,在高性能服務器中搭建應用服務集群。在本方案中,前置監(jiān)聽服務器采用SJSWS(SUN JAVASYSTEM WEB SERVER) 7.0,中間件使用GLASSFISH V2.1。前置監(jiān)聽服務器通過一個實例監(jiān)聽服務器的80端口,然后對該端口的請求轉(zhuǎn)發(fā)到4個實例中,各實例各自獨立運行Web應用,分擔訪問壓力。
建立集群和應用服務器實例
1.啟動domain1 :asadmin startdomain domain1。
2.建立節(jié)點代理nodeagent: asadmin create-node-agent --host localhost --port 4848 ng1。
3.建立集群cluster1:進入管理界面在集群結(jié)點進行添加,并將應用程序、EJB、資源等目標設置到cluster1上。
4.建立實例:進入管理界面,點擊cluster1-實例,新建4個實例instance1、instance2、 instance3、 instance4。
配置前端監(jiān)聽服務器
1.安裝配置前端監(jiān)聽服務器:
下 載 安 裝sun java system web server7.0,(注:以下路徑對應關系:
2.創(chuàng)建以下文件夾:
3.下載負載均衡插件:
下 載 地 址:http://dlc.sun.com. edgesuite.net/javaee5/external/Linux/aslb/ jars/aslb-9.1-MS4-b7.jar,解壓jar包,得到兩個壓縮文件,將兩個壓縮文件解壓到
4.安裝sun web server插件:
在解壓得到的lib包中,完成下列文件的拷貝:
5.配置sun web server:
在
##BEGIN EE LB Plug-in Parameters
Init fn="load-modules" shlib="webserver-install-dir/plugins/lbplugin/ bin/libpassthrough.so" funcs="initpassthrough,service-passthrough,nametrans-passthrough" Thread="no"
Init fn="init-passthrough"
##END EE LB Plug-in Parameters=
在
NameTrans fn="name-transpassthrough" name="lbplugin" configfile="loadbalancer.xml"
在該文件末尾,加上下列語句,
ObjectType fn="force-type" type="magnus-internal/lbplugin"
PathCheck fn="deny-existence" path="*/WEB-INF/*"
Service type="magnus-internal/ lbplugin" fn="service-passthrough"
Error reason="Bad Gateway" fn="senderror" uri="$docroot/badgateway.html"
為Glassfish應用服務器添加負載均衡器
1.添加負載均衡器:點擊http負載均衡器-新建,設備主機localhost,端口80(端口號可以在web server 7下的 configserver.xml中http-listener設定)。然后將從Glassfish負載均衡器中導出的loadbalancer.xml 拷貝到
2.運行服務:首先啟動Glassfish應用服務器,然后啟動sun web server ,同時啟動web server的實例。這樣通過80端口訪問服務器就能實現(xiàn)負載均衡。
Linux系統(tǒng)下實現(xiàn)時出現(xiàn)的問題及解決方法
1.loopback問題:集群設置后實例總是無法啟動,報37676端口無法連接。
解 決 辦 法: 修 改/etc/hosts, 把hostname的配置文件為靜態(tài)ip地址。在Linux 系統(tǒng)中,要將代理連接為集群,有一個特殊的前提條件。某些 Linux 安裝程序自動將 localhost 條目設置網(wǎng)絡回送 IP 地址為127.0.0.1。因此必須設置系統(tǒng)的 IP 地址,以便為集群中的所有代理設置正確的地址。
2.無法啟動webserver7的問題:報共享庫錯誤,無法寫入臨時文件。
解決辦法是將防火墻中的SeLinux禁用。
JVM參數(shù)
1.更改JVM運行模式:將參數(shù)-client改為-server,默認的是-client。在部署環(huán)境下,使用SERVER模式能提高運行效率。
2.調(diào)整JVM堆大小:推薦將最大值與最小值設置相等,使得JVM堆不會因動態(tài)調(diào)整大小而消耗資源。推薦將大小都設置為2至3G,如參數(shù)Xms2048m, -Xmx2048m。大小也可以根據(jù)服務器內(nèi)存情況而定。一般不能太大,太大了會導致垃圾回收時間延長,而在垃圾回收時間里,系統(tǒng)會停止對外工作。也不能太小,太小經(jīng)常會導致內(nèi)存泄漏的問題。
3.修改http.maxConnection:該參數(shù)表示最大空閑長連接數(shù),默認值是5,推薦設置為200以上,可以在jvm參數(shù)中直接增加新的一項“-Dhttp. maxConnections=250”。
HTTP服務參數(shù)
1.修改HTTP服務最大線程數(shù):HTTP服務為HTTP請求進程提供了一個線程池,默認計數(shù)是5,推薦使用>32。
2.修改Keep Alive的連接數(shù)量:Keep Alive子系統(tǒng)保持HTTP連接活動直至客戶端斷開或超時,默認連接數(shù)是250,推薦設置為10000以上。
搭建應用服務器集群后,系統(tǒng)的穩(wěn)定性得到了提高,應用服務器基本上沒再出現(xiàn)因用戶量大而死掉的情況。通過觀察,集群中4個實例全部運行后,系統(tǒng)中存在5個JVM虛擬機同時運行,每個JVM內(nèi)存占用在600M左右。雖然高性能計算機的內(nèi)存仍沒有充分利用,但已經(jīng)滿足了我們的實際需求,為未來留下了擴展空間。從我們的經(jīng)驗表明,利用Glassfish及Web服務器,搭建單機集群,實現(xiàn)高性能服務器的負載均衡,既能提高應用系統(tǒng)的穩(wěn)定性,又能充分利用高性能服務器的硬件資源,減少投入,節(jié)約成本。
(作者單位為河海大學信息中心)
2013年,華容縣僅用3個月時間,就完成了“三通兩平臺”建設:全縣132所學校全部接入寬帶,其中65所學校實現(xiàn)了有線無線全覆蓋;華容教育城域網(wǎng)及各學校校園網(wǎng)順利開通,并建成縣域中心機房。各教學班終端設備全部到位,已建成互聯(lián)網(wǎng)教室1667間。
有關人士指出,“華容樣本”,對中西部地區(qū)加快推進教育信息化具有較強的借鑒意義。
2013年春季,華容縣教育局與有關公司正式簽約:前者向后者讓渡縣域內(nèi)20年教育信息化運營權,后者負責基礎設施建設投資與教育信息化項目運營維護。具體協(xié)議是:網(wǎng)絡建設、辦公系統(tǒng)及“人人通”開發(fā)費用由企業(yè)投入;網(wǎng)絡運營維修及硬件建設資金全部由企業(yè)先期投入,縣教育局分期償付3563萬元,其中寬帶及運維費1703萬元,分8年償付,其后12年完全免費;中心機房、“班班通”終端設備采購1468萬元、利息392萬元,分5年償付。此外,每年用于信息化運營維護的耗材、人員工資以及20年內(nèi)設備更新與升級改造等,都由企業(yè)負責。
總體來說,華容縣20年教育信息化整體投入超過1.5億元,但政府用8年時間分期總投入僅3563萬元,減少投入70%,更重要的是提前10年實現(xiàn)了信息化。
相關部門的數(shù)據(jù)顯示,截至目前,華容縣90%的教師已能夠?qū)崿F(xiàn)電子信息化備課,全縣5874名教師,有5800人開通了網(wǎng)絡學習空間,開通機構空間34個和班級空間486個。
(來源:中國教育報)