摘要:监控应用资源完成对所在节点应用的监控主要通过周期性监控来完成的,代码如下其中默认的监控间隔为。以上便是对于的中的应用启动与应用资源监控。
Cloud Foundry中所有的应用都运行在一个称为DEA的组件中,DEA的全称是Droplet Execution Agent。
DEA的主要功能可以分为两个部分:运行所有的应用,监控所有的应用。本文主要讲解Cloud Foundry v1版本中DEA如何启动一个应用,以及DEA如何监控应用的资源使用。虽然DEA两个功能的实现远不止这么多,但是笔者认为启动应用和监控应用资源是 DEA的精髓所在,很多其他的内容都是在这两个点上进行封装或者强化。
DEA启动应用在一般情况下,启动一个应用,首先需要三样东西:环境,源码,应用入口。
关于环境,Cloud Foundry在DEA节点处,已经部署完多套不同框架应用运行所需要的环境。关于源码,Cloud Foundry中有一个droplet的概念,它是一个可运行的源码包,比用户上传的源码还要多一些Cloud Foundry自定义添加的内容,比如说对于Spring应用,Cloud Foundry会将Tomcat将应用源码打包在一起,并且添加Tomcat中应用的启动,终止脚本等。关于程序入口,刚才已经涉及到,打包过程中,启动 脚本已经被加入droplet之中。因此,DEA只需要简单的通过环境来执行启动脚本,就可以成功启动应用。在研究了源码之后,也会发现DEA中最主要的 文件名为agent.rb,在启动这方面,也就是充当一个代理的角色,通过Linux底层的脚本命令来完成对应用的操作。
了解Cloud Foundry中消息机制的开发者,一定会熟悉NATS的订阅/发布机制,而DEA也正是通过这种机制实现接收“启动应用”的请求。订阅代码如下:
[ruby] view plaincopy