在Openstack中,RPC调用是通过RabbitMQ进行的。

任何一个RPC调用,都有Client/Server两部分,分别在rpcapi.py和manager.py中实现。

这里以nova-scheduler调用nova-compute为例子。

nova/compute/rpcapi.py中有ComputeAPI

nova/compute/manager.py中有ComputeManager

两个类有名字相同的方法,nova-scheduler调用ComputeAPI中的方法,通过底层的RabbitMQ,就能到达nova-compute的ComputeManager中的方法。

本文主要分析这个过程。

ComputeAPI.run_instance()的调用过程如下:

nova-compute监听消息,将消息dispatch到ComputeManager的run_instance()方法。

Openstack中RabbitMQ RPC代码分析的更多相关文章

  1. OpenStack 中 RabbitMQ 的使用

    OpenStack 中 RabbitMQ 的使用 本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么. ...

  2. 探索 OpenStack 之(14):OpenStack 中 RabbitMQ 的使用

    本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么.第二部分将介绍其在 OpenStack 中的使用. ...

  3. AnimationsDemo中的ZoomActivity代码分析

    AnimationsDemo是android官网的一个动画使用示例. ZoomActivity是demo中的图像缩放动画,因为这种效果比较常见,所以研究了一下代码. 下面是效果图: 毫无疑问这是一个组 ...

  4. 对Java tutorial-examples中hello2核心代码分析

    1.在hello2中有两个.java源文件分别是GreetingServlet.Java和ResponseServlet.jva文件主要对以下核心代码做主要分析. String username = ...

  5. iOS 第三方自定义Alertview项目MBProcessHud中的重要代码分析

    做ios,弹出一个自定义的alertview挺常见的.ios7以前,我们可以对系统的UIAlertView进行一点操作,实现一点简单的定制,但是ios7不再允许我们这样做了.因此,我们需要自己创建一个 ...

  6. OpenStack中RabbitMQ高可用性配置

    采用镜像队列的方案进行配置 1. 网络拓扑 node1:10.10.11.1 node2:10.10.11.2 2. 配置hosts node1+node2: vim /etc/hosts >1 ...

  7. openCV中cvSnakeImage()函数代码分析

    /*M/////////////////////////////////////////////////////////////////////////////////////// // // IMP ...

  8. 微擎框架中receive.php代码分析

  9. Metalama简介3.自定义.NET项目中的代码分析

    本系列其它文章 使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题 Metalama简介1. 不止是一个.NET跨平台的编译时AOP框架 Metalama简介2.利用Aspect在 ...

随机推荐

  1. vue 统一处理token失效问题

    使用http response 拦截器 在main.js中添加 import axios from 'axios'; axios.interceptors.response.use(response ...

  2. spring boot 集成axis1.4 java.lang.NoClassDefFoundError: Could not initialize class org.apache.axis.client.AxisClient

    pom配置: <dependencies> <dependency> <groupId>org.springframework.boot</groupId&g ...

  3. codeforces 1110F

    题解: 正解做法比较简单,考虑离线之后,相邻两个节点之间的答案是有关系的 发现从父亲移到儿子后,改变的距离对于当前节点子树内和子树外的是一样的 所以线段树维护一下区间加减取max就可以了 另外的做法1 ...

  4. zabbix 安装rpm

    zabbix安装 1 安装数据库 #yum install mariadb-server  -y 配置配置文件 #vim /etc/my.cnf skip_name_resolve=on innodb ...

  5. linux在线安装mysql

     1)下载rpm安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm;2) 安装mysql源 yum ...

  6. xiao_ren

  7. 分布式缓存技术之Redis_01数据结构分析

    目录 官网 1. 分布式缓存技术的应用 2. Redis的安装指引 官网  redis.io  redisDoc 1. 分布式缓存技术的应用 2. Redis的安装指引 官网下载安装包 redis-5 ...

  8. SQL增删改语句

    一,插入数据 1.使用  insert ...values 语句插入单行或多行元组数据 insert  into 表名 (列名,列名,...,列名) values 值 表名:指被插入数据的表名 列名: ...

  9. sklearn.datasates 加载测试数据

    数据一:波士顿房价(适合做回归),以后直接用boston标记 这行代码就读进来了boston = sklearn.datasets.load_boston()查询具体数据说明,用这个代码:print ...

  10. scala_1

    scala 开发spark可以使用哪些语言: Python开发45% scala % java % 一.scala的概述 java基础上代码的简化版.功能的加强版 隐式转换 高阶函数 一个函数的参数是 ...