【Cloud Foundry】Could Foundry学习(三)——Router
在阅读的过程中有不论什么问题。欢迎一起交流
QQ:1494713801
一、概述
Router组件在Cloud Foundry中是对全部进来的Request进行路由。
进入Router的request主要有两类:首先是来自VMCClient或者STS的管理型指令,这类request会被路由到AppLife Management组件,又叫CloudController组件去;第二类是外界对你所部署的apps訪问的request,这部份requests会被路由到Appexecution。又或者叫做DEAs的组件去。
系统能够部署多个Routers共同处理进来的requests,可是Router上层的LoadBalance不在CloudFoundry的实现范围,CloudFoundry仅仅保证全部的request是无状态的,这样就使上层均衡负载选择面很很大了,能够通过DNS做、也能够部署硬件的LoadBalancer、或者简单点弄台ngnix作负载均衡器,都是可行的。
二、组成架构
眼下版本号的Router组件是对nginx的一个简单封装。它包含ngnix和router.rb两部分,当中nginx利用套接字文件(.sock文件)进行输入输入,router.rb实现对nginx的逻辑封装。
从总体的来看,Router组件的结构例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDUxNTc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="207" height="273">
外界httpRequest进入Cloud Foundryserver,nginx会首先接到request,nginx通过sock与router.rb进行交互(所以真正处理请求的是Router组件)。router.rb依据传入的url、usernamepassword等,进行逻辑推断。到CloudController组件或者DEA组件取得数据而且通过与niginx连接的.sock文件返回。router.rb是对nginx进行了逻辑封装。熟悉CloudFoundry的朋友肯定知道,CloudFoundry给每个app分配了一个url訪问。假设直接使用VMware所托管的CloudFoundry.com的话,那你的app的url可能就是xxx.cloudfoundry.com,不管通过命令给你的app扩展了多少个instances。都是从这个url訪问的。这里面的url转换路由就是由router.rb实现的。
注意:第二版的时候,由于ruby直接处理请求性能不行,换成了lua脚本来接收请求,再由ruby程序将结果返回。
【Cloud Foundry】Could Foundry学习(三)——Router的更多相关文章
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- day91 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- day 89 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...
- SVG 学习<三>渐变
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
随机推荐
- Lazy Math Instructor
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3721 Accepted: 1290 Description A m ...
- Servlet过滤器——日志记录过滤器
1.概述 在实际的项目开发过程中,经常需要在项目运行时,记录并在控制台中输出运行时的日志信息,便于查看项目的运行状况.本实例将介绍如何应用过滤器实现日志记录.运行本实例,将在控制台中输出项目运行时的日 ...
- libcurl编程,整整17篇
http://www.cnblogs.com/lidabo/category/639633.html
- 利用ScktSrvr打造多功能Socket服务器
Socket服务端编程中最重要的也是最难处理的工作便是客户请求的处理和数据的接收和发送,如果每一个Socket服务器应用程序的开发都要从头到尾处理这些事情的话,人将会很累,也会浪费大量时间.试想,如果 ...
- TWinControl.DefaultHandler处理WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC消息的两个参数很有意思,两个都是传递句柄
procedure TWinControl.DefaultHandler(var Message); begin then begin with TMessage(Message) do begin ...
- js之checkbox的代码全选/全不选,使用id获取元素,而不是name
每当有多个选项的时候,都会有一种想法是:全选,全不选,如果子选项有被选,父选项也得被选. 注意:这里是根据id来获取元素的,但是不能直接用getElementById,因为那只能返回一个,而不是集合. ...
- 14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes
14.2.5.6 Adaptive Hash Indexes 自适应Hash Indexes adaptive hash index(AHI) 让InnoDB 执行更加像在一个内存数据库里在, 在不牺 ...
- mysql dump 参数
mysql dump 参数: -R, --routines Dump stored routines (functions and procedures). 备份 函数和存储过程: -E, --eve ...
- win7下让程序默认以管理员身份运行
在win7中用自己写的程序读取MBR时,突然提示无法对磁盘进行操作,而在xp下并没有这个问题:最后点右键以管理员身份运行才可以正常运行.于是想办法让程序在双击启动时默认以管理员身份运行.具体方法: 1 ...
- QQ圈子降级为“应用”后应关注其隐私设置
在之前的QQ版本中,QQ圈子的权限设置在“系统设置”对话框的“权限设置”中,如图所示. 但是在更新后的2013SP1版本中,“系统设置”对话框中的“权限设置”已经没有了“圈子权限” QQ圈子成了应用管 ...