Openstack -- 消息队列

1、消息队列

       Openstack项目内部各组件之间采用远程通信机制RPC,而RPC采用消息队列来实现进程间的通信。Openstack使用的消息队列协议是AMQP,这是一个异步消息传递使用的应用层协议规范。应用程序之间无须专用连接,通过读写出入队列的消息即可进行相互通信。Openstack利用开源库oslo.messaging实现内部服务进程之间的通信。

2、AMQP的通信机制

1)建立连接,由生产者和消费者创建连接,连接到服务器/代理的物理节点上;

2)建立消息信道,信道建立在连接之上,一个连接可以建立多个信道,生产者连接虚拟主机建立信道,消费者连接到相应的队列上建立信道;

3)发送消息,生产者将消息发送到服务器/代理中的交换器;

4)转发消息,交换器收到消息后,根据一定的路由策略将消息转发到对应的队列;

5)接受消息,消费者监听相应的队列,一旦队列中有可以消费的消息,队列就将消息发送给消费者;

6)消息确认。当消费者完成一条消息的处理后,需要发送一条确认消息给相应的队列。

3、openstack中AMQP

Nova中的每个组件都会连接消息服务器,一个组件可能是一个消息发送者,也可能是一个消息接受者。Openstack默认使用kombu连接RabbitMQ服务器,消息的发送者与接受者都需要一个连接对象来连接RabbitMQ服务器。

Nova基于AMQP实现了下面两种类型的RPC:

1)rpc.call,同步调用,一个请求发送出去后,需要等待响应,调用需要指定目标服务节点;

2)rpc.cast,一般调用,是一种单向RPC,只将请求发送出去,不需要等待结果,不关心请求由哪个服务节点完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值