myclient.py内容如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : myclient.py
# @Software: PyCharm
'''
参考文章:
http://blog.youkuaiyun.com/happyanger6/article/details/54777429
https://docs.openstack.org/oslo.messaging/ocata/rpcclient.html
关键:
1 RPC Client基础
oslo_messaging.RPCClient(transport, target, timeout=None,, version_cap=None, serializer=None, retry=None)
作用:调用远程RPC服务的类
参数: transport: rpc底层通信,支持rabbit,qpid
target: 消息最终发送的地方
形式:target(exchange,topic,server):
参数:exchange:topic属于的范围,默认为配置文件的control_exchange
topic: 可被远程调用的多个方法
server:消息目的地服务器
2 RPC Call方法
oslo_messaging.RPCClient.call(ctxt, method, **kwargs)
含义:call方法是远程过程调用带有返回值的方法
特点:阻塞直到服务端返回结果
参数: ctxt:上下文字典,可为空
method:被调用的方法名
kwargs:调用该方法传入的参数
返回值:返回被调用远程方法的结果
3 RPC Cast方法
oslo_messaging.RPCClient.cast(ctxt, method, **kwargs)
含义:cast方法是远程过程调用,不带有返回值的方法
参数: