RPC介绍
RPC:(Remote Procedure Call)远程过程调用,就是一个节点请求另一个节点提供的服务。
RPC的核心并不在于使用什么协议。RPC的目的是让你在本地调用远程的方法,而对你来说这个调用是透明的,你并不知道这个调用的方法是部署哪里。通过RPC能解耦服务,这才是使用RPC的真正目的。
RPC的原理主要用到了动态代理模式,至于http协议,只是传输协议而已。简单的实现可以参考spring remoting,复杂的实现可以参考dubbo。(dubbo框架可以搜索本站相关教程)
常用的RPC框架
- thrift(自动代码生成,生成rpc的客户端和服务器端。)
- dubbo
- brpc。
RPC接口与HTTP接口的区别
1.rpc是一种概念,http也是rpc实现的一种方式
2.http接口是在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议 进行传输。
3.但是如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http 一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统 一化的操作。第三个来说就是安全性。最后就是最近流行的服务化架构、服务化治理,RPC框架是一个强力的支撑。
总结
- RPC主要用于微服务架构(公司内部的服务调用),性能消耗低,传输效率高(不需要三次握手),服务治理方便。
- HTTP主要用于对外的异构环境(用户调用),浏览器接口调用,APP接口调用,第三方接口调用等。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END