欢迎来到天天文库
浏览记录
ID:41406982
大小:8.86 MB
页数:28页
时间:2019-08-24
《《云计算(第三版)》配套PPT之28:第8章OpenStack开源虚拟化平台(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、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是一种处理消息验证、消息转换和消息路由的架构模式,它协调应用程序之间的
2、信息通信,并使得应用程序或者软件模块之间的相互意识最小化,有效实现解耦。OpenStackNova系统信息交换中枢RabbitMQ48.2计算服务NovaRabbitMQRabbitMQ适合部署在一个拓扑灵活易扩展的规模化系统环境中,有效保证不同模块、不同节点、不同进程之间消息通信的时效性;RabbitMQ特有的集群HA安全保障能力可以实现信息枢纽中心的系统级备份,同时单节点具备消息恢复能力功能性时效性安全可靠性SLA方面58.2计算服务NovaAMQPAMQP是应用层协议的一个开放标准,为面向消息的中间件而设计RabbitMQ是AMQP协议的一个开源实现OpenStac
3、kNova各软件模块通过AMQP协议实现信息通信AMQP协议的设计理念可归纳为基于状态的面向无连接通信系统模式对于AMQP来讲,消息队列的状态信息决定通信系统的转发路径IP数据包根据路由表实现报文的本地存储与逐级转发68.2计算服务NovaAMQPAMQP目标实现端到端的信息通信AMQP实现通信的因素是什么两个基本的概念AMQP实现通信的实体以及机制是什么78.2计算服务NovaAMQP交换器(Exchange)交换器由消费者应用程序创建,并且可与其他应用程序实现共享服务接收消息之后通过路由表将消息准确且安全地转发至相应的消息队列每个交换器通过唯一的ExchangeID进
4、行识别持久交换器临时交换器自动删除交换器持久交换器并不会因为系统重启或者应用程序终止而消除驻留在内存中,随着系统的关闭而消失随着宿主应用程序的中止而自动消亡队列(Queue)88.2计算服务NovaAMQP主要用于实现存储与转发交换器发送来的消息,队列同时也具备灵活的生命周期属性配置,可实现队列的持久保存、临时驻留与自动删除。消息队列交换器AMQP的三个关键组件任何一个组件的失效都会导致信息通信的中断,因此鉴于三个关键组件的重要性,系统在创建三个组件的同时会打上“Durable”标签,表明在系统重启之后立即恢复业务功能。98.2计算服务NovaAMQP构成AMQP的三个关
5、键要素的工作方式如图所示。消息生产者消息生产者交换器消息队列-1消息队列-2消息队列-3……消息队列-N消息消费者消息消费者108.2计算服务NovaAMQP三种不同类型的交换器广播式交换器(FanoutExchange)直接式交换器(DirectExchange)主题式交换器(TopicExchange)118.2计算服务NovaNova中的RabbitMQ应用目前Nova中的各个模块通过RabbitMQ服务器以RPC(远程过程调用)的方式实现通信,而且各模块之间形成松耦合关联关系,在扩展性、安全性以及性能方面均体现优势。Nova系统信息中枢RabbitMQ128.2计
6、算服务NovaNova中的RabbitMQ应用1)交换器2)队列3)绑定接受消息并且将消息转发给队列。应用程序在它的权限范围之内可以创建、删除、使用和共享交换器实例。交换器可以是持久的、临时的或者自动删除的“消息队列”,它是一个具名缓冲区,它代表一组消费者应用程序保存消息。这些应用程序在它们的权限范围内可以创建、使用、共享消息队列。可以理解为交换器和消息队列之间的一种关系,绑定之后交换器会知道应该把消息发给哪个队列,绑定的关键字称为binding_key。138.2计算服务NovaNova中的RabbitMQ应用该类交换器不分析所接收到消息中的RoutingKey,默认将
7、消息转发到所有与该交换器绑定的队列中去。广播式交换器转发效率最高,但是安全性较低,消费者应用程序可获取本不属于自己的消息。广播交换器是最简单的一种类型,就像我们从字面上理解到的一样,它把所有接收到的消息广播到所有它所知道的队列中去,不论消息的关键字是什么,消息都会被路由到和该交换器绑定的队列中去。1)广播式交换器类型(fanout)148.2计算服务NovaNova中的RabbitMQ应用在程序中申明一个广播式交换器的代码如下:PX1)广播式交换器类型(fanout)channel.exchange_declare(excha
此文档下载收益归作者所有