python中使用rpc框架
python官方库自带框架:SimpleXMLRPCServer,使用的http协议,xml格式,数据包大,速度慢
第三方框架:ZeroRPC(底层使用ZeroMQ和MessagePack,使用的tcp协议,速度快,响应时间短,并发高),grpc(谷歌推出支持跨语言)
1 SimpleXMLRPCServer使用
from xmlrpc.server import SimpleXMLRPCServer
class RPCServer(object):
def __init__(self):
super(RPCServer, self).__init__()
print(self)
self.send_data = {'server:'+str(i): i for i in range(100)}
self.recv_data = None
def getObj(self):
print('get data')
return self.send_data
def sendObj(self, data):
print('send data')
self.recv_data = data
print(self.recv_data)
# SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost',4242), allow_none=True) # 服务端监听ip和端口
server.register_introspection_functions()
server.register_instance(RPCServer()) # 把类的对象传过来,如果写的是函数,传函数内存地址
server.serve_forever() # 服务端一直启动