python实现RPC(远程过程调用)
-1 借助于rabbitmq 可以跨语言
-2 SimpleXMLRPCServer内置的
-3 zerorpc
-4 grpc 可以跨语言
1.1 SimpleXMLRPCServer 自带的
from xmlrpc.server import SimpleXMLRPCServer
class RPCServer(object):
def add(self,a,b):
return a+b
server = SimpleXMLRPCServer(('localhost', 4242), allow_none=True)
server.register_introspection_functions()
server.register_instance(RPCServer())
server.serve_forever()
import time
from xmlrpc.client import ServerProxy
1.2zerorpc
import zerorpc
class RPCServer(object):
def add(self,a,b):
print('a+b',a+b)
return a+b
s = zerorpc.Server(RPCServer())
s.bind('tcp://0.0.0.0:4243')
s.run()
import zerorpc
import time
def zerorpc_client():
print('zerorpc client')
c = zerorpc.Client()
c.connect('tcp://127.0.0.1:4243')
print(c.add(88, 77))
if __name__ == '__main__':
zerorpc_client()
rpc和http的关系
json和xml
区别:
1.数据格式:json用键值对的形式来表示数据,xml用标签加元素的嵌套结构来表示元素,相比之下json更加简洁紧凑
2.相对于xml,json的可读性较差。因为xml使用标签和结构表示数据。
3.xml扩展性高于json
4.数据类型:json支持字符串、数字、布尔值、数组和对象。xml默认存文本需要开发者自行解析和转换数据类型
5.json因为更简洁和紧凑,解析和编码速度快。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现