openstack nova 基础知识——rpc回调机制(callback)
2013-04-17 14:18
274 查看
前几篇已经知道了nova中消息是怎么发送和接收的了,但是不太明白消息被接收之后,是怎么处理的,看代码中消息接收那块传递的参数不是proxy就是callback,或者是callbacks,这个回调方法到底调用的是哪的方法呢?
从一个服务的启动程序上看,有这样一段代码:
rpc_dispatcher = self.manager.create_rpc_dispatcher()
self.conn.create_consumer(self.topic, rpc_dispatcher, fanout=False)
一个manager创建了一个dispatcher,然后用这个dispatcher创建了一个consumer,这个rpc_dispatcher就是callback,就是Consumer接收到消息之后,调用方法所使用的类。
发送消息时,其实消息的内容就是一个方法名和方法所需要的参数,这两者组成一个字典:
@staticmethod
def make_msg(method, **kwargs):
return {‘method’: method, ’args’: kwargs}
rpc_dispatcher相当于manager的一个代理类,其中有一个dispatch()方法,就是用来执行它所代理的manager中的方法 的,这个方法就是由接收到的msg(消息)来指定的。manager中定义了对某一个服务相关的管理工作,所以可以通过消息来指定要调用哪个方法进行相关 的管理,比如说创建一个实例,就调用manager中的run_instance()方法。
来看一下整体的类图:
还有一个ProxyCallback类,这个是Consumer直接使用的类,是对RpcDispatcher进行了一下封装,主要是将回调的方法放到绿色线程中执行,总的来说,Consumer执行的回调方法是来自相关的Manager,并且在绿色线程中执行。
从一个服务的启动程序上看,有这样一段代码:
rpc_dispatcher = self.manager.create_rpc_dispatcher()
self.conn.create_consumer(self.topic, rpc_dispatcher, fanout=False)
一个manager创建了一个dispatcher,然后用这个dispatcher创建了一个consumer,这个rpc_dispatcher就是callback,就是Consumer接收到消息之后,调用方法所使用的类。
发送消息时,其实消息的内容就是一个方法名和方法所需要的参数,这两者组成一个字典:
@staticmethod
def make_msg(method, **kwargs):
return {‘method’: method, ’args’: kwargs}
rpc_dispatcher相当于manager的一个代理类,其中有一个dispatch()方法,就是用来执行它所代理的manager中的方法 的,这个方法就是由接收到的msg(消息)来指定的。manager中定义了对某一个服务相关的管理工作,所以可以通过消息来指定要调用哪个方法进行相关 的管理,比如说创建一个实例,就调用manager中的run_instance()方法。
来看一下整体的类图:
还有一个ProxyCallback类,这个是Consumer直接使用的类,是对RpcDispatcher进行了一下封装,主要是将回调的方法放到绿色线程中执行,总的来说,Consumer执行的回调方法是来自相关的Manager,并且在绿色线程中执行。
相关文章推荐
- openstack nova 基础知识——rpc回调机制(callback) 和rpc模块中的kombu
- openstack nova 基础知识——rpc回调机制(callback)
- Callback回调机制知识大全
- openstack nova基础知识——rpc模块中的kombu
- openstack nova基础知识——rpc模块中的kombu
- openstack nova 基础知识——policy【转载】
- java 回调机制 callback
- java基础知识(四)java内存机制
- JAVA回调机制(CallBack)详解
- [Java]基础知识复习:例外的在继承中的机制
- Android中callback(接口回调)机制
- 吃透Java的反射机制——基础知识总结
- 【java】基础知识(JDK的配置、运行机制)
- JAVA回调机制(CallBack)
- HBase 源码分析1 – RPC机制 : 基础
- 学习笔记-基础知识13-反射机制
- openstack nova 基础知识——Kombu
- Java干货之回头补基础(一) ——Callback机制个人理解及应用
- Java基础知识强化10:Java中的中间缓存变量机制
- Java 回调机制(CallBack) 趣解