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