首页 > 手机 > 配件 > require,rpc

require,rpc

来源:整理 时间:2022-04-07 18:05:55 编辑:华为40 手机版

后端开发很复杂:涉及框架设计、开发调试、数据库操作、高并发处理、大规模存储、性能优化、容灾方案、RPC调用、进程管理、操作系统调度、网络安全、系统运维、日常维护、甚至是Linux内核、驱动开发.....。

微服务调用为什么用RPC框架,http不更简单吗?

微服务调用为什么用RPC框架,http不更简单吗

简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。传输过程中,也因为序列化方式的不同,又有一些框架和协议,比如Dubbo中的Dubbo协议,gRpc—Protobuf序列化协议等等。

其实,都是基于远程调用的概念,何为远程调用?重点是,RPC就是远程调用,远程调用就是客户端把调用的接口,参数,参数类型,方法,返回值,返回值类型等(这些称为方法签名),通过如上的协议,发送给服务端,告知服务端需要调用的接口方法,这个过程就是RPC的实现过程!HTTP和RPC是不同层面的两个东西!性能方面,HTTP本身是基于TCP协议的,属于应用层协议,所以HTTP协议本身在实现过程中就会占用大量的资源(内存,带宽等),性能上肯定没有通过TCP直接实现RPC协议快,不管HTTP如何优化肯定的是不如TCP的!而TCP则是依靠字节码,现在普遍采用的是将客户端调用的接口信息,序列化的方式发送给服务端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化后字节码最小的是Protobuf),序列化后的字节码越小,占用带宽越少,序列化时间越短,线程IO等待时间就会越小。

Dubbo迈出云原生重要一步应用级服务发现解析(核心)熟悉Dubbo开发者应该都知道,一直以来都是面向RPC方法去定义服务的,并且这也是Dubbo开发友好性、治理功能强的基础。

文章TAG:requirerpc

最近更新