RPC
什么是RPC?
(即Remote Procedure Call,远程过程调用)
RPC和HTTP的区别?
RPC主要是基于TCP/IP协议的
HTTP服务主要是基于HTTP协议的
我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹。核心组件?
一个完整的RPC架构里面包含了四个核心的组件: Client ,Server,Client Stub,Server Stub(服务端存根)
● 客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。
● 服务端存根,接收客户端发送过来的消息,将消息解包,并调用本地的方法。有哪些流行的RPC框架?
● gRPC是Google最近公布的开源软件;
● Thrift是Facebook的一个开源项目;
● Dubbo是阿里集团开源,和 Spring框架无缝集成(内部已暂定使用,新的是 HSF,又名“好舒服”)总结:
企业开发的模式大多为HTTP接口开发,也就是我们常说的RESTful风格的服务接口。的确,对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。
但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。