Apache Stratos探究:4.0.0 Cloud Controller Architecture
2016-02-01 13:57
691 查看
Cloud Controller负责与IaaS通信,并且启动和关闭 VM和Docker容器,处于Apache Stratos框架的最底层。
下图是 Cloud Controller的框架示意图。
由图可知,它由Cloud controller service、Cloud controller deployer、Axiom Xpath parser、Topology publisher、
IaaS implementation layer、jclouds几部分组成,下面分别进行介绍
Cloud controller service
从Cloud Controller中获得服务的上层主要与它进行通信。从代码角度来看,这里定义了一个叫做CloudControllerService的
接口,并且有一个实现类CloudControllerServiceImpl。
Cloud controller deployer
是一个Axis2的部署者,负责部署和更新cloud-controller.xml文件。(Axis2是一个Web Services/SOAP/WSDL引擎,
什么是Web Services/SOAP/WSDL,可以看这篇转载的文章,原作者写的不错,http://blog.csdn.net/zhouhuakang/article/details/50614510
Axiom Xpath parser
负责解析Cloud Controller中的全部的 *.xml格式的配置文件。
Topology publisher
Apache Stratos采用比较中心的位置,比如Cloud Controller来保存topology configuration。topology configuration在Apache Stratos指的是,在云环境下,在各个服务集群的信息。
将此信息仅仅保存在Cloud Controller中是不够高效的,因为在其他地方也要用到topology configuration,比如说Elastic Load Balancer(ELB),Artifact Distribution Coordinator(ADC)。因此,Cloud Controller会负责与其他组件同步该信息。下图解释了同步过程是如何发生的。
Topology synchronization
1.Cloud Controller保持不断构建topology configuration,然后定期的将其发布到一个topic中。(topic由Message Broker创建,而Message Broker是嵌入到Cloud Controller中的)
2.任何订阅者(subscriber)需要topology configuration的,可以订阅相关的topic,之后将获得保持同步的topology configuration。
3.理想情况下,订阅者英国可以分辨出configuration之间的不同的不同之处,并且及时根据不同之处作出反应。
Building a topology
通过移除一个已经添加进去的topology或者更新一个现有的topology(更新topology的时候,不用重启服务器),可以动态改变topology configuration。
采用生产者-消费者模式,当一个topology动态改变时,topic可获取到一个最新版版的该topology。由上图可知,作为生产者,Cloud Controller的Service Deployer会实时跟踪变化,并将新的topology configuration放入到一个共享的阻塞式的队列中,之后,作为消费者的Topology Builder会从队列中抓取到变化,并且添加或者更新topology
configuration :<APACHE-STRATOS-CC>/repository/conf/service-topology.conf
IaaS implementation layer
故名思意,该层是IaaS的实现层。这里关键是有一个叫做Iaas的抽象类,任何IaaS想让Cloud Controller支持,则必须需要实现Iaas这个抽象类。
jcloud
指的是jcloud的api。jclouds 是一个开源的Java类库,用来帮你开始云计算应用开发。
关于Apache jcloud,可以看下面这篇转载的文章
http://blog.csdn.net/zhouhuakang/article/details/50615678
下图是 Cloud Controller的框架示意图。
由图可知,它由Cloud controller service、Cloud controller deployer、Axiom Xpath parser、Topology publisher、
IaaS implementation layer、jclouds几部分组成,下面分别进行介绍
Cloud controller service
从Cloud Controller中获得服务的上层主要与它进行通信。从代码角度来看,这里定义了一个叫做CloudControllerService的
接口,并且有一个实现类CloudControllerServiceImpl。
Cloud controller deployer
是一个Axis2的部署者,负责部署和更新cloud-controller.xml文件。(Axis2是一个Web Services/SOAP/WSDL引擎,
什么是Web Services/SOAP/WSDL,可以看这篇转载的文章,原作者写的不错,http://blog.csdn.net/zhouhuakang/article/details/50614510
Axiom Xpath parser
负责解析Cloud Controller中的全部的 *.xml格式的配置文件。
Topology publisher
Apache Stratos采用比较中心的位置,比如Cloud Controller来保存topology configuration。topology configuration在Apache Stratos指的是,在云环境下,在各个服务集群的信息。
将此信息仅仅保存在Cloud Controller中是不够高效的,因为在其他地方也要用到topology configuration,比如说Elastic Load Balancer(ELB),Artifact Distribution Coordinator(ADC)。因此,Cloud Controller会负责与其他组件同步该信息。下图解释了同步过程是如何发生的。
Topology synchronization
1.Cloud Controller保持不断构建topology configuration,然后定期的将其发布到一个topic中。(topic由Message Broker创建,而Message Broker是嵌入到Cloud Controller中的)
2.任何订阅者(subscriber)需要topology configuration的,可以订阅相关的topic,之后将获得保持同步的topology configuration。
3.理想情况下,订阅者英国可以分辨出configuration之间的不同的不同之处,并且及时根据不同之处作出反应。
Building a topology
通过移除一个已经添加进去的topology或者更新一个现有的topology(更新topology的时候,不用重启服务器),可以动态改变topology configuration。
采用生产者-消费者模式,当一个topology动态改变时,topic可获取到一个最新版版的该topology。由上图可知,作为生产者,Cloud Controller的Service Deployer会实时跟踪变化,并将新的topology configuration放入到一个共享的阻塞式的队列中,之后,作为消费者的Topology Builder会从队列中抓取到变化,并且添加或者更新topology
configuration :<APACHE-STRATOS-CC>/repository/conf/service-topology.conf
IaaS implementation layer
故名思意,该层是IaaS的实现层。这里关键是有一个叫做Iaas的抽象类,任何IaaS想让Cloud Controller支持,则必须需要实现Iaas这个抽象类。
jcloud
指的是jcloud的api。jclouds 是一个开源的Java类库,用来帮你开始云计算应用开发。
关于Apache jcloud,可以看下面这篇转载的文章
http://blog.csdn.net/zhouhuakang/article/details/50615678
相关文章推荐
- apache静态编译和动态编译的理解以及用apache扩展模块的安装
- apache不能解析php文件提示403或者下载php文件
- org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 ti
- Apache activemq 入门示例(maven项目)
- windows server上配置 apache + php + MySQL + wordpress
- ubuntu14.04:php7+apache2+mysql
- CentOS7—Apache—多个虚拟站点—semodule
- 保证Linux Apache Web服务器安全的10个建议
- 隐藏apache和php的版本信息配置方法
- 隐藏apache和php的版本信息配置方法
- apache 有哪些 开源
- php5.2.17+apache2.2.22安装
- Python+Apache+CGI完全配置 推荐
- 使用Apache Jmeter进行并发压力测试
- apache的相关设置-默认虚拟主机配置文件
- apache三种MPM介绍
- apache的相关设置-给目录或者文件设置用户验证
- Apache Flink初接触
- sybase+php+apache环境搭建
- 编译apache时提示出现缺失apr和apr-util包