在线客服系统

期刊库

教育   经济   科技   财会   管理   
医学   法学   文史   工业   建筑   
农学   水利   计算机   更多>>
 首 页    论文大全   论文精品    学术答疑    论文检测    出书咨询    服务流程    诚信通道    关于我们 

基于AMQP的异步通信实现及其在OpenStack项目中的应用(2)

人气指数: 发布时间:2013-09-10 09:42  来源:http://www.zgqkk.com  作者: 李知杰
分享到:

 

  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)客户端和服务端的解耦合。因为更多时候,客户并不关心服务端身在何处。

  (2)客户端与服务端的异步机制。因为客户端并不要求服务端的实时响应。

  (3)随机平衡的远程调用。比如有多个服务端在运行时,一般一个调用只交付给最近最可用的服务端。

  4 结语

  基于AMQP消息队列异步消息通信,使得传统的RPC得到解耦合。这个软件设计理念不仅仅能在云计算项目中得到运用,在其它大型项目中也广泛适用。当我们遇到大型的分布式软件架构设计时,对于组建之间的相互调用,不妨考虑一下NovaRPC的设计理念。

  参考文献:

  [1] GOPIVOTAL,INC.RabbitMQ official guide for remote procedure call (RPC)[DB/OL].http://www.rabbitmq.com/tutorials/tutorialsixpython.html,2013.

  [2] GOPIVOTAL,INC.RabbitMQ official Guide for publish/subscribe[DB/OL].http://www.rabbitmq.com/tutorials/tutorialthreepython.html,2013.

  [3] OPENSTACK,LLC.Nova concepts and introduction[DB/OL].http://docs.openstack.org/developer/nova/nova.concepts.html,2012.

 


期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
  本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


  【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

 
QQ在线咨询
投稿辅导热线:
180-1501-6272
微信号咨询:
fabiaoba-com
咨询电话:18015016272 投稿邮箱:zgqkk365#126.com(#换成@)
本站郑重声明:文章只代表作者观点, 并不意味着本站认同。所载文章、数据仅供参考,使用前请核实,风险自负。
部分作品系转载,版权归原作者或相应的机构   若某篇作品侵犯您的权利,请来信告知.版权:周口博闻教育咨询有限公司 
Copyright © 2005-2023 . 期刊库 版权所有