openstack学习笔记----Nova和 AMQP

1 nova 的结构 :

                                    /- ( LDAP )
                [ Auth Manager ] ---
                        |           \- ( DB )
                        |
                        |
                        |
[ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan )
                        |                \
                     < HTTP >   [ scheduler ] - [ compute ] - ( libvirt/xen )
                        |                           |
                 [ objectstore ] < - retrieves images
  • DB: 所有组件的数据存储
  • Web Dashboard:和api沟通的潜在外部组件
  • api: 接收http请求,转化命令,通过队列或者http和其他组件进行沟通。
  • Auth Manager: 负责 users/projects/and roles.支持 DB 或者 LDAP.  
  • objectstore: 并且接收存储和获取镜像
  • scheduler: 决定每一个vm放在哪一个主机上
  • network: 管理IP映射,网桥和虚拟局域网
  • compute: 负责和管理者还有虚拟机之间的通信
2 AMQP

AMQP 是一种信息传送协议,rabbitMQ是这中协议的一个开源实现, 可以让nova组件之间采取一种低耦合的方式实现RPC通信。

nova 采用的信息交互的方式有三种:直接分列Fanout(消息会被传递到所有绑定的队列上)基于主题 3 种方式

nova 通过提供一个适配器来封装和解封发送消息,实现了RPC(rpc.call 和 rpc.cast) 。每一种nova服务(Compute,Scheduler,cert,conductor,consoleauth,)在初始化的时候,初始化两个队列1 接收‘NODE-TYPE.NODE-ID’ 类型路由key消息的队列 ;2 接收‘NODE-TYPE’ 类型路由key消息队列 


3 nova RPC 映射

每个nova组件连接到rabbitMQ,可能会将消息队列来当做一个invoker 或者是一个worker。Invoker通过rpc.call或者rpc.cast的方式向队列当中发消息,worker接收队列当中的消息来应答。



 4 oslo.messaging

为了支持不同的RPC 后端实现,oslo.meesaging 对如下对象做了统一 :

  Transport 实现RPC的底层通信 

target 封装了消息最终目标的的所有信息,其所具有若干属性 exchange ,topic ,namespace ,version ,server ,fanout 

server  一个RPC 服务器可以暴漏多个Endpoint ,每个endpoint 包含一组方法,可以被客户端进行远程调用,创建一个server 需要指定 Transport ,target ,endpoit 

RPC client :可以调用server 上面的方法 ,有cast 和call  两种调用形式 

Notifier  通过某个tranport 发消息

Notifier Listener  暴漏多个endpoint 


5 nova 当中的RPC 

nova 当中的各个组件之间的通信就是基于AMOP 这种RPC 机制,每个组件在启动的时候都会注册一个RPC server ,除nova-api (由于没有服务会调用他的借接口) 




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值