远程处理

如果你用完了单机的空间,可以扩展到其他机器.通过网络连接的一组计算机可以让你操作更多的多进程和多线程.

远程过程调用(RPC)其实运行在通过网络连接的远程机器上。

 

RPC客户端的工作原理
1、把你的函数参数转换成比特
2、把编码后的字节发送给远程机器

 

远程机器的工作原理
1、接收编码后的请求字节
2、接收完毕后,RPC客户端会把字节解码成原始的数据结构
3、客户端找到本地目标函数并用解码后的数据调用它
4、客户端编码函数执行的结果
5、客户端把编码后的字节发送给调用者

最后调用者把接收到的字节解码成返回值。

 

标准库中包含一种RPC实现,   xmlrpc 使用xml格式文件作为传输格式

import xmlrpc.client

proxy = xmlrpc.client.ServerProxy('http://localhost:6789/')
num =7
result = proxy.double(num)
print(result)
from xmlrpc.server import SimpleXMLRPCServer


def double(num):
    return num * 2


server = SimpleXMLRPCServer(('localhost', 6789))
server.register_function(double, 'double')
server.serve_forever()

 

 

另一种传输方式 Message-Pack    ,(json...)

pip3 install msgpack-rpc-python


会安装tornado,

 

from msgpackrpc import Server, Address


class Services:
    def double(self, num):
        print(num)
        return num * 2
server = Server(Services())
server.listen(Address('localhost',6789))
server.start()
from msgpackrpc import Client,Address
client = Client(Address('localhost',6789))
result = client.call('double',8)
print(result)

 

posted @ 2019-03-05 10:38  慕沁  阅读(212)  评论(0)    收藏  举报