基于AMQP异步通信实现及其在OpenStack项目中应用.docVIP

基于AMQP异步通信实现及其在OpenStack项目中应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AMQP异步通信实现及其在OpenStack项目中应用

基于AMQP异步通信实现及其在OpenStack项目中应用   摘要:AMQP(Advanced Message Queuing Protocol) 是一个提供统一消息服务的应用层标准协议,为客户端应用与消息中间件之间提供异步、安全、高效的交互,而RabbitMQ是AMQP(高级消息队列协议)的标准实现。在明确相关概念的基础上,对当前流行的云计算平台Openstack的主要组建之一Nova如何通过RabbitMQ实现异步消息通讯进行了详细分析。   关键词关键词:AMQP;RabbitMQ;异步消息;Nova每日RPC;OpenStack   中图分类号:TP301 文献标识码:A 文章编号文章编号2013)007003502   1 基本概念   1.1 AMQP   AMQP(Advanced Message Queuing Protocol) 是一个提供统一消息服务的应用层标准协议。它的主要特征是面向消息、队列、路由(包括点对点和发布/订阅),且可靠性强、安全。AMQP协议是一种二进制协议,为客户端应用与消息中间件之间提供异步、安全、高效的交互。 基于此协议的客户端与消息中间件可传递消息,并不受客户端和中间件不同产品、不同开发语言等条件的限制。   1.2 同步消息   同步消息是指发送程序首先向接收程序发起一个请求(发送消息),发送程序紧接着就会堵塞它自身的进程,直到收到接收程序的响应,发送程序在收到响应后会继续向下进行处理。   1.3 异步消息   异步消息是指发送消息者可以在发送消息后进行其它工作,不用等待接收者的回应,而接收者也不必在接到消息后立即对发送者的请求进行处理。   1.4 RabbitMQ   RabbitMQ是AMQP(高级消息队列协议)的标准实现,是在AMQP基础上的一个完整的、可复用的企业消息系统。RabbitMQ主要包括以下组件:   ①交换器(Exchange),它是发送消息的实体;   ②队列(Queue),这是接收消息的实体;   ③绑定器(Bind),将交换器和队列连接起来,并且封装消息的路由信息。   1.5 Nova   Nova也称为OpenStack Computer,这个软件是基础设施即服务(IaaS)的云计算平台控制器。这个云计算平台类似于Amazon EC2和Rackspace的云服务。支持OpenStack云中实例(instances)生命周期的所有活动都由Nova程序来处理。但Nova并不包括任何虚拟化软件,而是定义了一些驱动程序用于控制虚拟化软件,并能在主机操作系统上运行,具有通过Web Service API实现对外开放的功能。   1.6 RPC   RPC(Remote Procedure Call Protocol),即远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,RPC使得开发包括网络分布式多程序在内的应用程序更加容易。   2 AMQP实现NovaRPC   2.1 Nova系统架构   Nova是建立在无共享、基于消息传递的体系结构之上。其所有主要的组件,如:Compute Controller、Volume Controller、Network Controller、Object Store等需要运行在多个服务器上。Cloud Controller器与Object Store通过HTTP进行通信,但它与Scheduler、Network Controller、Volume Controller是通过AMQP协议进行通信的。每个组件在等待响应时为了避免阻塞情况的发生,Nova使用异步调用机制,接收到响应时回调方法会被触发。   为了达成实现无共享属性和同一组件的多个副本,Nova会将云系统的所有系统状态存储在分布式数据库中。当原子事务被请求时会更新系统的状态并写入到数据库,当收到查询请求时会从数据库中把状态值读出。在某些情况下也会直接将读取结果作为缓存短时间存储在Nova控制机器内。   2.2 NovaRPC   Nova需要和OpenStack平台中的其它Nova组件进行通信。RabbitMQ作为OpenStack云的一个消息组件,位于两个Nova的组件中间,从而可以让这两个组件在松耦合的情况下通信。更精确地说,Nova的组件用RPC(远程过程调用)来与另外一个组件进行交互。这种方式是建立在发布/认购范式的策略下,在这种情况下,有如下好处:   (1)客户端和服务端的解耦合。因为更多时候,客户并不

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档