国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Apache集群在多媒體內(nèi)容播控管理平臺(tái)上的應(yīng)用*

2013-06-01 11:00張小鋒朱曉民
關(guān)鍵詞:集群終端服務(wù)器

張小鋒,朱曉民

(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)

Apache集群在多媒體內(nèi)容播控管理平臺(tái)上的應(yīng)用*

張小鋒1,2,朱曉民1,2

(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876; 2 東信北郵信息技術(shù)有限公司,北京 100191)

隨著終端用戶的增加,多媒體內(nèi)容播控管理平臺(tái)對(duì)高訪問(wèn)量、高并發(fā)的需求越來(lái)越高。本文首先介紹了Apache集群的原理,然后將其應(yīng)用于多媒體內(nèi)容播控管理平臺(tái)中,通過(guò)均衡負(fù)載,減輕了服務(wù)器的負(fù)擔(dān),提高了響應(yīng)速度。

并發(fā); 集群; Apache; 負(fù)載

隨著多媒體內(nèi)容播控管理平臺(tái)(數(shù)字標(biāo)牌業(yè)務(wù))的推廣,用戶數(shù)量和終端數(shù)量會(huì)逐漸增加,多媒體內(nèi)容播控管理平臺(tái)的終端訪問(wèn)數(shù)量并發(fā)訪問(wèn)量越來(lái)越大,造成Web服務(wù)器的負(fù)荷加重直至崩潰, 如何解決服務(wù)器的高負(fù)荷問(wèn)題已經(jīng)是無(wú)法回避的問(wèn)題了。通過(guò)單純提升處理器等服務(wù)器硬件性能來(lái)提高服務(wù)器的負(fù)載能力是比較直接的解決方法,但會(huì)導(dǎo)致巨大的開銷。服務(wù)器硬件是相當(dāng)昂貴的, 而且也無(wú)法保護(hù)原有設(shè)備上的投資,這對(duì)于中小型企業(yè)來(lái)說(shuō)不堪重負(fù)。還有一種解決思路是集群思想,使用多臺(tái)服務(wù)器組成集群提供服務(wù),通過(guò)一定機(jī)制使集群共同分擔(dān)系統(tǒng)負(fù)載,對(duì)單一的服務(wù)器沒(méi)有太高的性能要求,系統(tǒng)負(fù)載增加,可以多增加服務(wù)器來(lái)分擔(dān)。對(duì)用戶而言,整個(gè)系統(tǒng)仿佛是一臺(tái)單一的邏輯服務(wù)器,這樣的系統(tǒng)能夠提供較強(qiáng)的可擴(kuò)展性和較好的吞吐性能。

負(fù)載均衡(Load Balance)集群建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性[1]。集群可以使用各種復(fù)雜的動(dòng)態(tài)負(fù)載均衡算法[2],而Apache集群自帶的負(fù)載均衡算法非常簡(jiǎn)單,大大簡(jiǎn)化了集群的搭建和配置,對(duì)于中小型企業(yè)來(lái)說(shuō)使用非常簡(jiǎn)捷。

1 Apache集群介紹

1.1 請(qǐng)求分發(fā)原理

Apache集群工作原理如圖1所示, Apache和Tomcat共同響應(yīng)終端用戶的請(qǐng)求,Apache作為Tomcat的前端處理器。由于Apache httpd處理靜態(tài)頁(yè)面的能力遠(yuǎn)遠(yuǎn)強(qiáng)于Tomcat,所以靜態(tài)請(qǐng)求直接由Apache來(lái)處理;而動(dòng)態(tài)請(qǐng)求則由JK(也叫mod_jk,這是一款A(yù)pache/IIS用來(lái)連接后臺(tái)Tomcat的模塊,是Apache的開源模塊,使Apache支持集群和負(fù)載均衡)分發(fā)給Tomcat處理。

圖1 Apache集群架構(gòu)圖

1.2 Session同步機(jī)制

對(duì)集群來(lái)說(shuō),如何保證各個(gè)服務(wù)器之間的Session同步非常關(guān)鍵。

對(duì)于由Tomcat主機(jī)組成的集群有兩種方式:一種就是黏性會(huì)話模式,即sticky模式。另外一種就是Session復(fù)制模式了。

1.2.1 黏性會(huì)話模式

利用負(fù)載均衡器的sticky模式的方式把所有同一Session的請(qǐng)求都發(fā)送到相同的Tomcat節(jié)點(diǎn)。這樣不同用戶的請(qǐng)求就被平均分配到集群中各個(gè)Tomcat節(jié)點(diǎn)上,實(shí)現(xiàn)負(fù)載均衡的能力。

這種模式的優(yōu)點(diǎn)是對(duì)于開發(fā)者來(lái)說(shuō),實(shí)現(xiàn)起來(lái)非常容易,只需修改jvmRoute="Tomcat1";缺點(diǎn)是沒(méi)有災(zāi)難恢復(fù)的能力。一旦一個(gè)節(jié)點(diǎn)發(fā)生故障,這個(gè)節(jié)點(diǎn)上所有的Session信息全部丟失。

1.2.2 復(fù)制模式

這種模式可以使所有Session在所有Tomcat節(jié)點(diǎn)中保持一致。當(dāng)一個(gè)節(jié)點(diǎn)修改一個(gè)Session數(shù)據(jù)的時(shí)候,該節(jié)點(diǎn)會(huì)把這個(gè)Session的所有內(nèi)容序列化,然后廣播給所有其它節(jié)點(diǎn)。這樣當(dāng)下一個(gè)用戶請(qǐng)求被負(fù)載均衡器分配到另外一個(gè)節(jié)點(diǎn)的時(shí)候,那個(gè)節(jié)點(diǎn)上有完備的Session信息可以用來(lái)服務(wù)該請(qǐng)求。

這種模式最大的問(wèn)題是對(duì)Session哪怕有一點(diǎn)點(diǎn)修改,也要把整個(gè)Sessions數(shù)據(jù)全部序列化 (serialize),還要廣播給集群中所有節(jié)點(diǎn),不管該節(jié)點(diǎn)到底需不需要這個(gè)Session。這樣很容易會(huì)造成大量的網(wǎng)絡(luò)通信,導(dǎo)致網(wǎng)絡(luò)阻塞。一般采用這種方式,當(dāng)Tomcat節(jié)點(diǎn)超過(guò)4個(gè)時(shí)候,整個(gè)集群的吞吐量就不能再上升了; 此方式是通過(guò)Tomcat本身提供的功能,只需要修改server. xml文件:

(1)修改Engine節(jié)點(diǎn)信息:

(2)去掉

(3)web.xml中增加

2 在多媒體內(nèi)容播控管理平臺(tái)中使用Apache集群

2.1 系統(tǒng)架構(gòu)圖

基于Apache集群的播控終端管理平臺(tái)系統(tǒng)架構(gòu)如圖2所示,負(fù)載均衡層由一臺(tái)Apache主機(jī)支持,服務(wù)器集群由多臺(tái)Tomcat主機(jī)組成,數(shù)據(jù)庫(kù)由兩個(gè)數(shù)據(jù)庫(kù)主機(jī)采用主備切換的方式實(shí)現(xiàn)容災(zāi)。

任務(wù)服務(wù)器把任務(wù)分配給后端的應(yīng)用服務(wù)器,任務(wù)服務(wù)器需要后端的應(yīng)用服務(wù)器暴露一個(gè)接口供應(yīng)用服務(wù)器來(lái)查詢,從而使任務(wù)服務(wù)器獲取當(dāng)前該服務(wù)器的負(fù)載狀態(tài)。通過(guò)一個(gè)HTTP接口,把一些信息暴露給任務(wù)服務(wù)器,任務(wù)服務(wù)器只需要通過(guò)后端的應(yīng)用服務(wù)器查詢這些狀態(tài),就可以找到應(yīng)用服務(wù)器欲提供的信息。由于使用的標(biāo)準(zhǔn)HTTP協(xié)議,上述過(guò)程可以用標(biāo)準(zhǔn)的HTTP客戶端來(lái)測(cè)試。

應(yīng)用服務(wù)器相當(dāng)于一個(gè)HTTP服務(wù)器,這個(gè)任務(wù)服務(wù)器相當(dāng)于一個(gè)HTTP客戶端,它可以去查詢或者說(shuō)是監(jiān)視這些應(yīng)用服務(wù)器當(dāng)前的負(fù)載。到底是CPU高還是I/O高還是并發(fā)高,還是內(nèi)存換頁(yè)高,這些應(yīng)用服務(wù)器應(yīng)該提供一個(gè)接口,暴露給應(yīng)用服務(wù)器去查詢。應(yīng)用服務(wù)器的負(fù)載均衡增加一個(gè)任務(wù)服務(wù)器來(lái)實(shí)現(xiàn)。任務(wù)服務(wù)器在查詢到這些信息后,選取負(fù)載最低的應(yīng)用服務(wù)器來(lái)分配任務(wù)。當(dāng)然這里面可能有一些算法來(lái)確定負(fù)載最低的。相當(dāng)于應(yīng)用服務(wù)器被動(dòng)的接收了任務(wù)。應(yīng)用服務(wù)器能不能主動(dòng)的去任務(wù)服務(wù)器上面取任務(wù)呢。數(shù)據(jù)庫(kù)同步用的是replication機(jī)制,主流的服務(wù)器都有類似的機(jī)制。

圖2 基于Apache集群的數(shù)字標(biāo)牌平臺(tái)架構(gòu)

2.2 終端任務(wù)輪詢接口(心跳接口)

2.2.1 接口功能

終端定期向平臺(tái)進(jìn)行輪詢,獲取任務(wù)以及控制指令,該接口同時(shí)具備心跳功能。隨著多媒體內(nèi)容播控管理平臺(tái)的推廣,終端數(shù)量會(huì)增加。播控終端每隔一個(gè)時(shí)間片將與播控平臺(tái)交互(如圖3所示),導(dǎo)致系統(tǒng)負(fù)載較大。

圖3 任務(wù)輪訓(xùn)接口

2.2.2 接口流程

由圖3和圖4可知,時(shí)刻都有終端在向播控終端輪詢是否有播放任務(wù),使用多臺(tái)服務(wù)器組成集群提供服務(wù),通過(guò)一定機(jī)制使集群共同分擔(dān)系統(tǒng)負(fù)載,解決系統(tǒng)負(fù)載增加的問(wèn)題。

圖4 終端獲取播放任務(wù)流程

2.3 Apache集群部署的主要配置

2.3.1 http.conf

修改這個(gè)配置文件的作用是Apache添加JK模塊,修改之前首先去官網(wǎng)下載JK模塊,命名格式為mod_jk-1.2.31-httpd-2.2.3.so,下載后將文件放在apache安裝根目錄的modules目錄下,然后再http. conf文件末尾添加下面的語(yǔ)句:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

JkWorkersFile conf/workers.properties

#指定那些請(qǐng)求交給Tomcat處理,"controller"為在workers.propertise里指定的負(fù)載分配控制器名

JkMount /*.jsp controller

2.3.2 創(chuàng)建并編輯work.properties

這個(gè)文件的作用是配置Tomcat服務(wù)器主機(jī)的IP、

#server

worker.list = controller

#========Tomcat1======== worker.Tomcat1.port=11009

worker.Tomcat1.host=localhost

worker.Tomcat1.type=ajp13

worker.Tomcat1.lbfactor = 1

#========Tomcat2======== worker.Tomcat2.port=12009端口和權(quán)值以及負(fù)載控制器的策略、Session共享機(jī)制:

worker.Tomcat2.host=localhost

worker.Tomcat2.type=ajp13

worker.Tomcat2.lbfactor = 1

#========controller,負(fù)載均衡控制器========

worker.controller.type=lb

worker.controller.balanced_workers=Tomcat1,Tomcat2,T omcat3

worker.controller.sticky_Session=false

worker.controller.sticky_Session_force=1

#worker.controller.sticky_Session=1不能

2.3.3 Tomcat配置

Tomcat配置主要是使Tomcat支持集群方式,只需修改server.xml即可,第1處修改是支持AJP/1.3協(xié)議,如下:

第2處修改是配置此Tomcat實(shí)例的名字,如下:

注意:jvmRoute的值必須與work. properties中配置的Tomcat 實(shí)例的名字一致。

第3處就是打開集群,如下:

2.4 使用Apache集群后與使用前的性能比較

測(cè)試環(huán)境是4臺(tái)配置相同的主機(jī):CPU 2.4 GHZ,內(nèi)存4.0 GB,硬盤500 GB,操作系統(tǒng)SUSE Linux Enterprise Server 10 (x86_64)。

使用Apache集群時(shí):一臺(tái)主機(jī)作為Apache負(fù)載均衡器,另外3臺(tái)作為Web服務(wù)器,并部署相同的應(yīng)用;不使用Apache集群時(shí):僅使用一臺(tái)主機(jī)作為Web服務(wù)器,在這臺(tái)服務(wù)器上部署與集群服務(wù)器上相同的應(yīng)用,用戶的請(qǐng)求都發(fā)送給這臺(tái)Web服務(wù)器來(lái)處理。

所使用的測(cè)試軟件是Apache自帶的ab (ApacheBench)壓力測(cè)試工具,命令為ab -c并發(fā)數(shù)-n請(qǐng)求數(shù)請(qǐng)求的網(wǎng)址[3],如輸入ab -c 10 -n 100 http://localhost/cyuser/zone/sucai.jsp,表示每次發(fā)出10個(gè)請(qǐng)求(即并發(fā)次數(shù)為10),一共有100個(gè)請(qǐng)求,請(qǐng)求的網(wǎng)址為:http://localhost/cyuser/zone/ sucai.jsp。

本實(shí)驗(yàn)共進(jìn)行了6次測(cè)試,每次測(cè)試選用的并發(fā)數(shù)都是同一個(gè)值,選用的是10,不同是請(qǐng)求數(shù)的取值,分別取10,100,500,1000,5000,10000,6次測(cè)試執(zhí)行命令分別為:

ab -c 10 -n 10 http://localhost/cyuser/ zone/sucai.jsp

ab -c 10 -n 100 http://localhost/cyuser/ zone/sucai.jsp

表1 使用Apache集群前后性能比較

圖5 使用Apache集群與未使用Apache集群響應(yīng)時(shí)間對(duì)比圖

圖6 使用Apache集群與未使用Apache集群加速比趨勢(shì)圖

ab -c 10 -n 500 http://localhost/cyuser/ zone/sucai.jsp

ab -c 10 -n 1000 http://localhost/cyuser/ zone/sucai.jsp

ab -c 10 -n 5000 http://localhost/cyuser/ zone/sucai.jsp

ab -c 10 -n 10000 http://localhost/cyuser/ zone/sucai.jsp

表1是測(cè)試結(jié)果。

從圖6可以看出效率提升是很明顯的,加速比下降的那個(gè)點(diǎn),推斷可能是由于系統(tǒng)資源不穩(wěn)定導(dǎo)致的奇異點(diǎn),同比還是增加的。從表中可以看出,使用Apache集群后,響應(yīng)時(shí)間大大縮短,而且,隨著訪問(wèn)量的增大,使用集群所帶來(lái)的負(fù)載分擔(dān)效果越來(lái)越明顯,集群響應(yīng)高訪問(wèn)量的速度更快。

3 展望

集群系統(tǒng)技術(shù)的發(fā)展非常迅速,如今已越來(lái)越受到人們的重視并廣泛地應(yīng)用在各個(gè)方面,成為主要的高性能低價(jià)格的網(wǎng)絡(luò)服務(wù)系統(tǒng)的解決方案,同時(shí)由于集群系統(tǒng)的高效性、可靠性、擴(kuò)展性、低成本和透明性,相信未來(lái)會(huì)得到更多的應(yīng)用。

[1] 魏紅,李志勇.Web 服務(wù)器動(dòng)態(tài)負(fù)載均衡的設(shè)計(jì)與研究 [J].現(xiàn)代計(jì)算機(jī),2009(10):48-50,74

[2] Teng S B, Liao J X, Zhu X M. Dynamic weighted random load balancing algorithm for SIP application server[J], The Journal of China Universities of Posts and Telecommunications, August 2009,16(4):67-70.

[3] 邵芬,于國(guó)防,付海燕.AB:一種簡(jiǎn)單的性能測(cè)試工具[J].計(jì)算機(jī)時(shí)代,2007,(12):59-60.

Apache cluster in multimedia broadcast content management platform

ZHANG Xiao-feng, ZHU Xiao-min
(1 State Key Lab of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)

With the increasing of the end users, the multimedia broadcast content management platform requires web service with higher speed and better performance. This paper fi rst introduces the principle of the Apache cluster, and then uses the techenique in multimedia broadcast content management platform. Through balancing the load of web servers, it can reduce the burden of server and improve the response speed.

concurrency; cluster; Apache; load

TP393

A

1008-5599(2013)08-0079-05

2013-07-18

國(guó)家973計(jì)劃項(xiàng)目(No. 2013CB329100, 2013CB329102);國(guó)家自然科學(xué)基金(No. 61271019, 61101119, 61121001, 61072057,60902051);長(zhǎng)江學(xué)者和創(chuàng)新團(tuán)隊(duì)發(fā)展計(jì)劃資助(No. IRT1049)。

猜你喜歡
集群終端服務(wù)器
X美術(shù)館首屆三年展:“終端〉_How Do We Begin?”
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
GSM-R手持終端呼叫FAS失敗案例分析
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
中國(guó)服務(wù)器市場(chǎng)份額出爐
勤快又呆萌的集群機(jī)器人
得形忘意的服務(wù)器標(biāo)準(zhǔn)
計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御