OpenStack各项目组件通信机制

openstack各项目之间通过restful api进行通信,相同项目内不同组件进程组件之间通过消息总线进行通信。服务进程通过向消息总线上发送和获取消息,openstack是基于消息驱动的。

在这里插入图片描述
目前项目内部消息通信采用两种方式实现。RPC和事件通知。
1、RPC(remote procedure call)主要包含call和cast两种(call:同步调用;cast:异步接口)。
2、事件通知(event notification)

AMQP的架构如图所示
在这里插入图片描述
消息的处理分发主要有Exchange(消息交换)和Queue(消息队列)实现。
当producer将消息发送给消息服务器时,由Exchange和消息的routing key决定将消息发送给哪个queue队列,然后consumer在queue拿取自己感兴趣的消息进行处理。
Exchange并不会保存消息,只是对消息进行分发,负责指定消息发送到哪个队列上。

基于AMQP的RPC实现

在这里插入图片描述

  1. client发送消息request给exchange,routing key指明到op_queue消息队列,并从res_queue取返回。
  2. Exchange将消息推送到op_queue消息队列
  3. server端从op_queue取出自己需要处理的数据,执行对应的任务,并将执行的响应结果发送给exchange,指明到res_queue
  4. Exchange将返回的消息推送到res_queue
  5. client从res_queue获取响应。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值