一文让你了解Python3中的RPC实现

什么是RPC?
百度百科给出的解释是这样的:“RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议”。

REST Vs RPC
微服务中服务之间的通信,大部分有两种:即为RESTful和RPC。 但是rest和rpc并不属于同一类对比的种类。rest是定义了一种设计风格和开发方式,rpc是定义了一种协议。

所属类别不同
REST,是Representational State Transfer 的简写,中文描述表述性状态传递(是指某个瞬间状态的资源数据的快照,包括资源数据的内容、表述格式(XML、JSON)等信息。)

REST 是一种软件架构风格。 这种风格的典型应用,就是HTTP。其因为简单、扩展性强的特点而广受开发者的青睐。

而RPC 呢,是 Remote Procedure Call Protocol 的简写,中文描述是远程过程调用,它可以实现客户端像调用本地服务(方法)一样调用服务器的服务(方法)。

RPC 是一种基于 TCP 的通信协议,按理说它和REST不是一个层面上的东西,不应该放在一起讨论,但是谁让REST这么流行呢,它是目前最流行的一套互联网应用程序的API设计标准,某种意义下,我们说 REST 可以其实就是指代 HTTP 协议。

使用方式不同
从使用上来看,HTTP 接口只关注服务提供方,对于客户端怎么调用并不关心。接口只要保证有客户端调用时,返回对应的数据就行了。而RPC则要求客户端接口保持和服务端的一致。

REST 是服务端把方法写好,客户端并不知道具体方法。客户端只想获取资源,所以发起HTTP请求,而服务端接收到请求后根据URI经过一系列的路由才定位到方法上面去
PRC是服务端提供好方法给客户端调用,客户端需要知道服务端的具体类,具体方法,然后像调用本地方法一样直接调用它。
面向对象不同
从设计上来看,RPC,所谓的远程过程调用 ,是面向方法的 ,REST:所谓的 Representational state transfer ,是面向资源的

序列化协议不同
接口调用通常包含两个部分,序列化和通信协议。

通信协议,上面已经提及了,REST 是 基于 HTTP 协议,而 RPC 可以基于 TCP/UDP,也可以基于 HTTP 协议进行传输的。

常见的序列化协议,有:json、xml、hession、protobuf、thrift、text、bytes等,REST 通常使用的是 JSON或者XML,而 RPC 使用的是 JSON-RPC,或者 XML-RPC。

应用
REST 接口更加规范,通用适配性要求高,建议对外的接口都统一成 REST(也有例外,比如我接触过 zabbix,其 API 就是基于 JSON-RPC 2.0协议的)。而组件内部的各个模块,可以选择 RPC,一个是不用耗费太多精力去开发和维护多套的HTTP接口,一个RPC的调用性能更好
从性能角度看,由于HTTP本身提供了丰富的状态功能与扩展功能,但也正由于HTTP提供的功能过多,导致在网络传输时,需要携带的信息更多,从性能角度上讲,较为低效。而RPC服务网络传输上仅传输与业务内容相关的数据,传输数据更小,性能更高。
python3实现
Python3自带xmlrpc


#server(单线程)
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python是一种通用的高级编程语言,它具有简洁明了的语法、易于理解和学习的特点,因此在近年来逐渐流行起来。 Python的优点: 1.易于学习和使用:Python具有清晰简洁的语法,语言结构简单明了,非常适合初学者入门,不需要太多的编程背景知识。 2.丰富的库和框架:Python生态系统很完整,有许多开源的库和框架,使得Python可以快速地开发和部署应用程序。 3.可移植性和跨平台支持:Python开发的应用程序可以运行在各种平台上,如Windows、Linux、MacOS等,大大降低了应用程序的依赖性。 4.高效的编程方式:Python支持面向对象、函数式编程等多种编程范式,支持动态类型,可以使得程序代码更为高效、简洁。 Python的缺点: 1.运行速度相对较慢:Python采用的是解释型语言,代码执行需要实时翻译成机器语言,因此运行速度相对较慢。 2.资源消耗较大:由于Python对于内存管理使用的是垃圾回收机制,因此在使用Python进行开发的时候,需要考虑到一些内存占用问题。 3.不适合处理大数据量:Python在处理大规模数据处理时候找不到优势和便利,因此无法在大数据和高性能计算等领域发挥优势。 总体来说,尽管Python存在一些缺点,但其优点远远大于缺点,因此Python依然是一种非常受欢迎的编程语言,逐渐成为广大编程学习者和开发者的首选。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南城以南1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值