1.
http://shallon.iteye.com/blog/126428
针对Bosh作了很通俗的讲解
2.
http://www.jabbercn.org/XEP-0124
xmpp的文档有Bosh的详细介绍
3.
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
IBM针对Comet的介绍
简单点说Bosh就是
服务器阻塞客户端的请求 一直到有数据要发给客户端 (或Timeout其实Timeout也会发数据给客户端)
有数据时服务器就通过这个阻塞的请求返回数据。 客户端在得到数据后又发送新的请求到服务器端。服务器端又会阻塞这个请求(个人认为这个请求服务器会接收数据,但不会返回。后面可以看到其实这里是有2个请求的)。
不过情况并不是这么简单,因为:
服务器会给客户端发数据,客户端也应该可以给服务器发消息。
所以这个时候客户端会发一个新的请求req2(也就是客户端会有2个请求一个被服务器阻塞req1用于返回数据,另一个req2用于发送数据给服务器)
在服务器得到数据后,服务器会马上通过被阻塞的请求req1返回数据给客户端(没有数据会返回空包给客户端),
此时之前用于客户端发送数据的请求req2成为了被阻塞的请求req1'。
此时 1. 如果客户端要发送新的服务器,就必须发送一个新的请求req2'。然后就上面的一致了。
2. 如果客户端当前不发送新的数据,也会发送一个新的请求req2',这样可以保证客户端在要发送数据时可以立即发送数据给服务器。
所以这里其实有一个角色转换。新的连接用于客户端发送数据,老的连接用于服务器发送数据。
后来一想,应该2个请求都是阻塞的,只是服务器用第一个(相对比较早生成的一个连接)请求返回而已.
目前还有一个问题,连接Timeout问题
文档中
引用
如果在一个规定时间内(通常是几分钟)两个方向上都没有流量, 那么连接管理器以无数据来应答客户端, 并且那个应答立即触发一个新的客户端请求. 连接管理器这么做来确认是否网络连接已经中断,并且双方都在一个合理的时间内明白到这一点. 这一交换类似大部分持久TCP连接中的通用的 "keep-alive" 或 "ping" . 因为BOSH技术未使用轮询, 带宽消耗不会比标准TCP连接大很多.
这个说得很清楚!
纯个人作品,不喜勿喷!欢迎交流!
分享到:
相关推荐
汽车电气与电子BOSH.pdf
VMWare BOSH平台介绍.pdf
详细介绍了Cloud Foundry的BOSH各个部分和功能。
Can总线协议,英文版(BOSH),很好的内容,适合汽车电子。
BOSH是一个针对大规模分布式系统的部署和生命周期管理的开源工具,其基础是“a tool of release engineering"。由其定义可以看出,虽然BOSH的诞生出自cloudfoundry的部署难题,但BOSH能做的不只是部署cloudfoundry...
该文档来自于Docker Meetup深圳站,华为蒙泽超带来了题为“使用CloudFoundry 的BOSH管理Docker的集群”的演讲。
将Ansible编排的功能与BOSH出色的软件生命周期管理相结合 除了提供Ansible二进制文件之外,此发行版还提供了一种触发操作的方法,该操作将在节点上运行附加的Ansible发行版。 这个想法能够在每次部署新实例时通过...
bosh-init 部署 bosh 新的 CLI 不仅仅可以部署 Micro BOSH。 但在这个项目中,这正是我们要做的 - 使用新的bosh-init CLI 部署一个 Micro BOSH。 该项目将在运行 BOSH 的 AWS EC2 us-east-1 区域上部署单个服务器...
BOSH 7400 XI 用在系统集成
bosh-lite.tar
Docker 中的 BOSH 命令行 背景: 安装 BOSH 命令行 (bosh_cli) 需要时间,此 docker 文件可帮助您快速入门。 使用以下指令构建环境: 要求: 这个 DockerFile 已经在 Ubuntu:14.04 上测试过。 请使用以下命令...
启动您的Minikube minikube start 可能需要一些时间才能看到Kubectl is now configured to use the cluster ,这表明我们已准备好继续。 部署并运行BOSH主管。 例如,请参阅以了解如何设置这样的BOSH Lite v2环境...
用BOSH自动部署大规模 云平台Cloud Foundry: Cloud Foundry云平台简介 Cloud Foundry架构 Cloud Foundry部署模型 BOSH工作原理 用BOSH自动化部署Cloud Foundry 用BOSH实现Cloud Foundry弹性 BOSH应用实例
汽车广泛使用的CAN协议基础,诸多的芯片商:飞思卡尔,ST...等公司的产品集成了支持此CAN协议的CAN功能模块。
BOSH CLI 的单行安装程序 BOSH CLI 作为 RubyGem 分发,需要现代 Ruby 2.1+。 如果你的目标机器没有安装现代 Ruby; 或者如果您不确定; 然后你可以运行以下命令: curl -s ...
bosh-init 部署 redis 新的 CLI 不仅仅可以部署 Micro BOSH。 该项目将在运行 Redis 服务器的 AWS EC2 us-east-1 区域上部署单个服务器/VM/实例。 它使用新 bosh-init CLI 和 BOSH 社区版本。用法首先,获取所需的...
Redis BOSH 部署流水线 注意:这个自述文件是首先编写的,然后开发了管道,我还没有更新自述文件来反映我到目前为止实际实现的内容。 但这里是连续部署 Redis 3 次的基本管道的图片: 此存储库是从 BOSH 部署到...
老板代理 文档: 松弛:#bosh在 邮件列表: CI:[ ] 路线图:(标签:agent) 开发者须知 请参阅。
使用BOSH进行Cloud Foundry的生产环境部署 使用BOSH进行Cloud Foundry的生产环境部署
它将允许您通过bosh create-env样式部署来部署BOSH,以及将BOSH部署在另一个BOSH之上,这与在BOSH上部署大多数其他事物的方式类似。 快速开始 要使用它,您甚至不需要克隆此存储库! 只需运行以下命令(使用Genesis...