《云计算(第三版)》第8章 OpenStack 开源虚拟化平台(二)课件_第1页
《云计算(第三版)》第8章 OpenStack 开源虚拟化平台(二)课件_第2页
《云计算(第三版)》第8章 OpenStack 开源虚拟化平台(二)课件_第3页
《云计算(第三版)》第8章 OpenStack 开源虚拟化平台(二)课件_第4页
《云计算(第三版)》第8章 OpenStack 开源虚拟化平台(二)课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.2计算服务Nova8.2.1Nova组件介绍8.2.2Libvirt简介8.2.3Nova中的RabbitMQ解析28.2计算服务NovaNova中的RabbitMQ解析消息队列(Queue)与数据库(Database)终端用户(DevOps、Developers、OpenStack)Nova守护进程系统内消息传递和信息共享任务之间、模块之间、接口之间的异步部署NovaAPI与OpenStack系统的互动消息队列和数据库完成终端用户的云服务请求38.2计算服务NovaRabbitMQRabbitMQ是一种处理消息验证、消息转换和消息路由的架构模式,它协调应用程序之间的信息通信,并使得应用程序或者软件模块之间的相互意识最小化,有效实现解耦。OpenStackNova系统信息交换中枢RabbitMQ48.2计算服务NovaRabbitMQRabbitMQ适合部署在一个拓扑灵活易扩展的规模化系统环境中,有效保证不同模块、不同节点、不同进程之间消息通信的时效性;RabbitMQ特有的集群HA安全保障能力可以实现信息枢纽中心的系统级备份,同时单节点具备消息恢复能力功能性时效性安全可靠性SLA方面58.2计算服务NovaAMQPAMQP是应用层协议的一个开放标准,为面向消息的中间件而设计RabbitMQ是AMQP协议的一个开源实现OpenStackNova各软件模块通过AMQP协议实现信息通信AMQP协议的设计理念可归纳为基于状态的面向无连接通信系统模式对于AMQP来讲,消息队列的状态信息决定通信系统的转发路径IP数据包根据路由表实现报文的本地存储与逐级转发68.2计算服务NovaAMQPAMQP目标实现端到端的信息通信AMQP实现通信的因素是什么两个基本的概念AMQP实现通信的实体以及机制是什么78.2计算服务NovaAMQP交换器(Exchange)交换器由消费者应用程序创建,并且可与其他应用程序实现共享服务接收消息之后通过路由表将消息准确且安全地转发至相应的消息队列每个交换器通过唯一的ExchangeID进行识别持久交换器临时交换器自动删除交换器持久交换器并不会因为系统重启或者应用程序终止而消除驻留在内存中,随着系统的关闭而消失随着宿主应用程序的中止而自动消亡队列(Queue)88.2计算服务NovaAMQP主要用于实现存储与转发交换器发送来的消息,队列同时也具备灵活的生命周期属性配置,可实现队列的持久保存、临时驻留与自动删除。消息队列交换器AMQP的三个关键组件任何一个组件的失效都会导致信息通信的中断,因此鉴于三个关键组件的重要性,系统在创建三个组件的同时会打上“Durable”标签,表明在系统重启之后立即恢复业务功能。98.2计算服务NovaAMQP构成AMQP的三个关键要素的工作方式如图所示。消息生产者消息生产者交换器消息队列-1消息队列-2消息队列-3……消息队列-N消息消费者消息消费者108.2计算服务NovaAMQP三种不同类型的交换器广播式交换器(FanoutExchange)直接式交换器(DirectExchange)主题式交换器(TopicExchange)118.2计算服务NovaNova中的RabbitMQ应用目前Nova中的各个模块通过RabbitMQ服务器以RPC(远程过程调用)的方式实现通信,而且各模块之间形成松耦合关联关系,在扩展性、安全性以及性能方面均体现优势。Nova系统信息中枢RabbitMQ128.2计算服务NovaNova中的RabbitMQ应用1)交换器2)队列3)绑定接受消息并且将消息转发给队列。应用程序在它的权限范围之内可以创建、删除、使用和共享交换器实例。交换器可以是持久的、临时的或者自动删除的“消息队列”,它是一个具名缓冲区,它代表一组消费者应用程序保存消息。这些应用程序在它们的权限范围内可以创建、使用、共享消息队列。可以理解为交换器和消息队列之间的一种关系,绑定之后交换器会知道应该把消息发给哪个队列,绑定的关键字称为binding_key。138.2计算服务NovaNova中的RabbitMQ应用该类交换器不分析所接收到消息中的RoutingKey,默认将消息转发到所有与该交换器绑定的队列中去。广播式交换器转发效率最高,但是安全性较低,消费者应用程序可获取本不属于自己的消息。广播交换器是最简单的一种类型,就像我们从字面上理解到的一样,它把所有接收到的消息广播到所有它所知道的队列中去,不论消息的关键字是什么,消息都会被路由到和该交换器绑定的队列中去。1)广播式交换器类型(fanout)148.2计算服务NovaNova中的RabbitMQ应用在程序中申明一个广播式交换器的代码如下:PX1)广播式交换器类型(fanout)channel.exchange_declare(exchange='fanout',type='fanout')158.2计算服务NovaNova中的RabbitMQ应用直接式交换器的转发效率较高,安全性较好,但是缺乏灵活性,系统配置量较大。相对广播交换器来说,直接交换器可以给我们带来更多的灵活性。直接交换器的路由算法很简单:一个消息的routing_key完全匹配一个队列的binding_key,就将这个消息路由到该队列。绑定的关键字将队列和交换器绑定到一起。当消息的routing_key和多个绑定关键字匹配时消息可能会被发送到多个队列中。2)直接式交换器类型(direct)168.2计算服务NovaNova中的RabbitMQ应用PXC2C2Q1Q2orangegreenblackType=direct直接交换器的工作方式2)直接式交换器类型(direct)178.2计算服务NovaNova中的RabbitMQ应用PXC2C2Q1Q2*.orange*Lazy.#*.*rabbitType=topic3)主题式交换器(TopicExchange)188.2计算服务NovaNova中的RabbitMQ应用Nova基于RabbitMQ实现两种RPC调用RPC.CALLRPC.CAST基于请求与响应方式只是提供单向请求Nova的各个模块在逻辑功能上可以划分为两种Invoker模块Worker模块主要功能是向消息队列中发送系统请求消息,如Nova-API和Nova-Scheduler;从消息队列中获取Invoker模块发送的系统请求消息以及向Invoker模块回复系统响应消息,如Nova-Compute、Nova-Volume和Nova-Network。198.2计算服务NovaTopic消息生产者Nova中的RabbitMQ应用Direct消息消费者Direct消息队列点对点消息队列共享消息队列交换机Direct消息生产者Topic消息生产者1Topic消息生产者2Topic消息生产者3交换器RoutingKey=NODE-TYPE.NODE-IDRoutingKey=NODE-TYPE.Topic交换域Direct交换域RabbitMQ服务器InvokerWorker208.2计算服务NovaNova中的RabbitMQ应用Topic消息生产者Direct消息消费者Direct消息队列点对点消息队列交换机Direct消息生产者Topic消息消费者1交换器RoutingKey=NODE-TYPE.NODE-IDTopic交换域Direct交换域RabbitMQ服务器InvokerWorkerRoutingKey=MSG-ID218.2计算服务NovaNova中的RabbitMQ应用Invoker端生成一个Topic消息生产者和一个Direct消息消费者。其中,Topic消息生产者发送系统请求消息到Topic交换器,Direct消息消费者等待响应消息。Topic交换器根据消息的RoutingKey转发消息,Topic消费者从相应的消息队列中接收消息,并传递给负责执行相关任务的Worker。Worker根据请求消息执行完任务之后,分配一个Direct消息生产者,Direct消息生产者将响应消息发送到Direct交换器。Direct交换器根据响应消息的RoutingKey转发至相应的消息队列,Direct消费者接收并把它传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论