摘要:監(jiān)控應(yīng)用資源完成對(duì)所在節(jié)點(diǎn)應(yīng)用的監(jiān)控主要通過周期性監(jiān)控來完成的,代碼如下其中默認(rèn)的監(jiān)控間隔為。以上便是對(duì)于的中的應(yīng)用啟動(dòng)與應(yīng)用資源監(jiān)控。
????? Cloud Foundry中所有的應(yīng)用都運(yùn)行在一個(gè)稱為DEA的組件中,DEA的全稱是Droplet Execution Agent。
??????DEA的主要功能可以分為兩個(gè)部分:運(yùn)行所有的應(yīng)用,監(jiān)控所有的應(yīng)用。本文主要講解Cloud Foundry v1版本中DEA如何啟動(dòng)一個(gè)應(yīng)用,以及DEA如何監(jiān)控應(yīng)用的資源使用。雖然DEA兩個(gè)功能的實(shí)現(xiàn)遠(yuǎn)不止這么多,但是筆者認(rèn)為啟動(dòng)應(yīng)用和監(jiān)控應(yīng)用資源是 DEA的精髓所在,很多其他的內(nèi)容都是在這兩個(gè)點(diǎn)上進(jìn)行封裝或者強(qiáng)化。
DEA啟動(dòng)應(yīng)用??????在一般情況下,啟動(dòng)一個(gè)應(yīng)用,首先需要三樣?xùn)|西:環(huán)境,源碼,應(yīng)用入口。
??????關(guān)于環(huán)境,Cloud Foundry在DEA節(jié)點(diǎn)處,已經(jīng)部署完多套不同框架應(yīng)用運(yùn)行所需要的環(huán)境。關(guān)于源碼,Cloud Foundry中有一個(gè)droplet的概念,它是一個(gè)可運(yùn)行的源碼包,比用戶上傳的源碼還要多一些Cloud Foundry自定義添加的內(nèi)容,比如說對(duì)于Spring應(yīng)用,Cloud Foundry會(huì)將Tomcat將應(yīng)用源碼打包在一起,并且添加Tomcat中應(yīng)用的啟動(dòng),終止腳本等。關(guān)于程序入口,剛才已經(jīng)涉及到,打包過程中,啟動(dòng) 腳本已經(jīng)被加入droplet之中。因此,DEA只需要簡(jiǎn)單的通過環(huán)境來執(zhí)行啟動(dòng)腳本,就可以成功啟動(dòng)應(yīng)用。在研究了源碼之后,也會(huì)發(fā)現(xiàn)DEA中最主要的 文件名為agent.rb,在啟動(dòng)這方面,也就是充當(dāng)一個(gè)代理的角色,通過Linux底層的腳本命令來完成對(duì)應(yīng)用的操作。
?????了解Cloud Foundry中消息機(jī)制的開發(fā)者,一定會(huì)熟悉NATS的訂閱/發(fā)布機(jī)制,而DEA也正是通過這種機(jī)制實(shí)現(xiàn)接收“啟動(dòng)應(yīng)用”的請(qǐng)求。訂閱代碼如下:
???? [ruby] view plaincopy