rpc和soap的区别有:1. 交互数据的编解码方式不同;2. 用户感知的行为方式不同;3.RPC的性能会更好;4. SOAP和REST一般都跟语言无关。其中,Rpc一般采用自定义协议或者常见的二进制协议,也有用JSON的。
一、rpc和soap的区别
1. 交互数据的编解码方式不同
Rpc一般采用自定义协议或者常见的二进制协议,也有用JSON的。而SOAP采用XML,REST就是JSON了。
2. 用户感知的行为方式不同
SOAP和REST,两端的业务开发都能够感知到这是在收发一次网络请求。而RPC给上层业务的感觉,就像是一个本地调用。
3.RPC的性能会更好
rpc是远程调用,有多种方式实现,基本上包含了传输方式和对象反序列化序列化方式的组合。
4.SOAP和REST一般都跟语言无关
soap只是其中的一种方式,基于http传输约定格式的xml, 用wsdl描述,由于比较啰嗦,之前在企业应用的比较多,互联网上已经用的比较少了,一般用json over http的restful比较多,还有一些追求效率更高的rpc方式连http也不用,用另外的编码方式的数据直接走socket,比如thrift, protobuf之类。
延伸阅读:
二、rpc是什么
RPC(Remote Procedure Call)是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。
和MQ做对比: MQ有一个中间节点queue,可以存储消息 RPC的特性: 同步调用,对于需要等待返回结果的场景,可以使用RPC 消息MQ的特性: 异步单向的消息,不需要等待消息处理完成 如果需要同步得到结果的场景,RPC比较适合,如果希望使用简单,RPC也适合,RPC操作基于接口,操作简单,使用的方式模拟本地方法的调用,异步的方式编程比较复杂
以上就是关于rpc和soap的区别的内容希望对大家有帮助。