什么是rpc 微服务调用为啥用RPC框架,http不更简单吗?
微服务调用为啥用RPC框架,http不更简单吗?
简单一点,HTTP是协议,RPC是概念!RPC可以基于HTTP协议(feign)、TCP协议(netty)、RMI协议(soap)和web服务(XML-RPC)框架实现。在传输过程中,由于序列化方法的不同,也出现了一些框架和协议,如Dubbo中的Dubbo协议、grpc protobuf序列化协议等。实际上,它们都是基于远程调用的概念。什么是远程呼叫?
关键是RPC是远程调用。远程调用是客户端通过上述协议向服务器发送接口、参数、参数类型、方法、返回值、返回值类型等(称为方法签名),通知服务器要调用的接口方法。这个过程就是RPC的实现过程!HTTP和RPC是两码事
!在性能方面,HTTP本身是基于TCP协议的,属于应用层协议,所以HTTP协议本身在实现过程中会占用大量的资源(内存、带宽等)。在性能方面,它肯定不如直接通过TCP实现的RPC协议快。不管HTTP有多优化,它绝对没有TCP那么快!另一方面,TCP依赖于字节码。目前常用的是将客户端调用的接口信息以序列化的方式发送到服务器端。序列化框架包括许多内容(Hession、protobuf、kryo等)。Kryo具有最高的序列化性能,protobuf具有序列化后最小的字节码)。序列化后的字节码越小,占用的带宽越小,序列化时间越长,线程IO延迟越短,线程IO延迟越小。因此,在具体的应用层,有很多技术可以讨论。您可以根据自己的硬件能力选择相应的技术
!欢迎热爱科技的人们来探索
rpc采用什么协议传输?
Rfc-1831远程过程调用协议注:在不了解底层网络技术的情况下,通过网络从远程计算机程序请求服务的协议。RPC假设存在一些传输协议,例如TCP或UDP,在通信程序之间传输信息和数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多道程序设计在内的应用程序变得更加容易。RPC采用客户机/服务器模式。请求者是客户端,服务提供者是服务器。首先,调用进程向服务进程发送带有进程参数的调用信息,然后等待响应信息。在服务器端,进程一直处于休眠状态,直到呼叫信息到达。当呼叫消息到达时,服务器获取进程参数,计算结果,发送应答信息,然后等待下一个呼叫信息。最后,客户端调用进程接收应答信息,得到进程结果,然后调用执行继续。目前,有许多RPC模式和实现。它最初是由孙提出的。修订了IETF-onc-charter的sun版本,使onc-PRC协议成为IETF标准协议。最流行的模式和执行方式是基于开放软件的分布式计算环境(DCE)。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。