关于java:网络编程

7次阅读

共计 617 个字符,预计需要花费 2 分钟才能阅读完成。

协定

HTTP 与 RPC 的区别

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 等待时间就会越小。所以,在具体利用层面有很多可探讨的技术,能够依据本人的硬件能力来抉择相应的技术就能够了!

正文完
 0