在阅读的过程中有不论什么问题,欢迎一起交流

邮箱:1494713801@qq.com   

QQ:1494713801

Cloud Foundry核心组件架构图例如以下:

主要组件:

    Cloud Controller:实质上是VMC和STS交互的server端,它收到指令后发消息到各模快,管理整个云的执行。相当于Cloud Foundry的大脑。

DEA:负责处理对所部署的App的訪问请求。事实上质是打包和訪问Droplet。当中Droplet是通过Stager组件将提交的源码及Cloud Foundry配置好的执行环境以及一些控制脚本等,所有打包在一起形成的tar文件。

Routers:对全部进来的请求进行路由控制。

Router组件是可扩展的,由多个 Router共同处理进来的请求。但怎样对Router做负载均衡不属于Cloud Foundry的实现范围。

进入Router的请求主要有两类。

  • 第一类是来自VMC Client或者STS的,由Cloud Foundry使用者发出,叫做管理请求。这类请求会被路由到Cloud Controller组件处理。
  • 第二类是对所部署的App的訪问请求。这部分请求会被路由到App execution,即DEA组件中。

Health Manager:负责从各个DEA获得执行信息,然后进行统计分析、报告、发出告警等。

Services:负责提供云平台的各种应用服务,是一个独立的、插件式的模块,便于第三方方便地把自己的服务整合成Cloud Foundry服务。

辅助组件:

UAA:负责用户模型的认证,使用组织和用户空间等概念。利于用户及权限管理。

另外UAA DB用于存储用户相关信息。

NATS:是一个基于事件驱动的、轻量级的消息系统,用于消息公布和订阅,联系着各个模块。

Stager:攻克了打包(Stage)过程须要操作大量文件且操作时间长的问题,所以它作为独立进程。使打包工作异步进行。不堵塞作为核心组件的Cloud Controller。

源代码导读

能够在Github上找到CloudFoundry的所有代码:https://github.com/cloudfoundry,会看到几个不同的Repositories,它们各自是:

1、vcap: Cloud Foundry的Core,又或者称作Kernel。

2、vcap-service: Cloud Foundry的Service组件。Cloud Foundry的service是作为插件提供的,这出于它方便第三方开发service而设计的;

3、vmc: VMware Cloud CLI. 是一个Ruby应用,与Cloud Foundry的CLI交互。主要通过分析用户输入的CLI。向CloudFoundry发送Restful请求。

4、vcap-java: 假设你的app是用java开发,且须要与Cloud Foundry交互,比如取得当前serviceserver的ip地址等,你可能须要这个jar。里面对我们Java开发经常使用框架有所支持,它底层也是 对CloudFoundry的Restful请求的包装;

5、vcap-java-client: Cloud Foundry的Restful API的Java封装。与上面的项目不一样,它仅仅是个简单的读取CloudFoundry信息,并放如JavaBean中;

6、vcap-test: Cloud Foundry的test cases;

7、vcap-test-assets: Cloud Foundry一些apps演示样例。

【Cloud Foundry】Could Foundry学习(二)——核心组件分析的更多相关文章

  1. Quartz学习--二 Hello Quartz! 和源码分析

    Quartz学习--二  Hello Quartz! 和源码分析 三.  Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...

  2. 必应词典--英语学习APP案例分析

    一.调研,评测 1.个人上手体验 这还是第一次听说必应词典,只能说知名度有待提高啊.首先,下载打开必应词典的第一感觉就是不够美观,个人感觉不论图标还是界面的美感都不足,既繁琐有简洁,给人的最直观感受就 ...

  3. 必应词典英语学习APP案例分析

    一.调研,评测 1.在此次作业之前并没有听过这个学英语app,必应听起来就像英语单词bing,第一次听到觉得这个app很奇怪,但没有将它和英语挂上钩.但是使用一阵子之后我觉得这个名字很好上口,其次这个 ...

  4. 【集美大学1411_助教博客】个人作业2——英语学习APP案例分析 成绩

    个人作业2--英语学习APP案例分析,截止发稿时间全班31人,提交31,未提交0人.有一名同学已经写了作业但忘记提交了,这次给分了,但下不为例.由于助教这周有点忙,所以点评得非常不及时,请同学们见谅. ...

  5. SpringCloud学习(二):微服务入门实战项目搭建

    一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...

  6. Android JNI学习(二)——实战JNI之“hello world”

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  7. HashMap的源码学习以及性能分析

    HashMap的源码学习以及性能分析 一).Map接口的实现类 HashTable.HashMap.LinkedHashMap.TreeMap 二).HashMap和HashTable的区别 1).H ...

  8. Dubbo源码学习(二)

    @Adaptive注解 在上一篇ExtensionLoader的博客中记录了,有两种扩展点,一种是普通的扩展实现,另一种就是自适应的扩展点,即@Adaptive注解的实现类. @Documented ...

  9. Java开发学习(二十二)----Spring事务属性、事务传播行为

    一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout ...

  10. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

随机推荐

  1. Python 2.7 学习笔记 列表的使用

    同其它编程语言一样,python也提供了丰富的数据结构,以方便数据的处理.本文介绍两种最基本的数据集合,列表和元组的使用. 一.列表使用介绍 可以理解为一个有序的序列.其使用方式举例如下: list= ...

  2. mong 备份和恢复

    [root@hy-mrz01 bin]# ./mongofiles list -h114.55.5.57 -db pics 20160602152850deeabcb1bd2644afa0c3a9a8 ...

  3. C++标准库类型vector及迭代器iterator简介

    Vector是C++标准库类型,称为容器,一个容器中的所有对象必须是同一种类型的.与数组相比,其最大的优点就是动态增长.Vector是一个类模板,并不是数据类型,而vector<int>和 ...

  4. java困惑(二)函数以及引用改变

    具体的Visio 文档在资源

  5. ultraedit比较两个文件差异经验

    链接地址:http://jingyan.baidu.com/article/fcb5aff7876551edab4a714b.html 程序开发人员经常要使用到两个文件的对比,有很多工具可以实现该功能 ...

  6. [置顶] JNI之java传递数据给c语言

    1.首先创建 DataProvider类: package com.pl.ndkpassdata; public class DataProvider { static{ System.loadLib ...

  7. git教程1

    主要参考: 官方书籍: Pro Git 中文版:http://git.perlchina.org/book/zh 英文版:http://git.perlchina.org/book http://gi ...

  8. perl 面向对象 use base

    1.XXX.pm 文件里面的第一行要是:package XXX: 2.要有构造函数 sub new,实现如下: sub new { my $class = shift; # Get the reque ...

  9. 有关oppo蝴蝶解锁的三D技术

    oppo手机的界面设计也是很漂亮的.在很多界面中使用了3D技术塑造出了大量华丽的效果.在蝴蝶解锁中使用了两个对称的三D变幻,宛如蝴蝶翅膀上美丽的花纹.在受到用户点击后,随风缓慢上下扇动,充满浪漫的动感 ...

  10. Swift - 使用闭包筛选过滤数据元素

    通常筛选一个数组,通常会在代码的其它地方创建一个函数,然后为数组的每个元素调用它.但这样做会使代码分散在许多地方,不便于阅读.使用闭包就可以将相关代码片断放在一起,使结构逻辑更加清晰. 比如,筛选一个 ...