为什么需要RPC接口

目前有很多rpc框架,有基于json的,有基于xml,也有基于二进制对象的。
论复杂度,rpc框架肯定是高于简单的http接口的。但毋庸置疑,http接口由于受限于http协议,需要带http请求头,导致传输起来效率或者说安全性不如rpc。
现在问题是,遇到怎样的瓶颈了才需要或者说更适合用rpc(比如像阿里这么大的请求并发量,简单的http肯定达不到预期),但问题是大家所在的公司,要有像阿里这么大的量是比较少的,甚至说1/1000的量可能都没有,那我们还需要使用rpc吗?
技术应该不是为了使用新技术而去使用,而应该是旧技术存在某些瓶颈,存在难以支撑或者扩展性越老越差等问题暴露出来之后,用新技术来进行解决。
那rpc最大的优点,或者说它相比简单的http接口,它的优势、更适合它的业务场景是怎样呢?简单的http又哪里不足,哪些场景明显不太适合呢?
rpc=remoteproducecall是一种技术的概念名词。http是一种协议,rpc可以通过http来实现,也可以通过socket自己实现一套协议来实现。
所以可以换一个问法,为何rpc还有除http之外的实现法,有何必要。毕竟除了http实现外,私有协议不具备通用性。那么我想唯一的答案就在于http不能满足其业务场景的地方,所以这个就要具体案例具体分析了。
分析
http接口是在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。但是如果是一个大型的网站,内部子系统较多、接口非常多的情况下,rpc框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是rpc框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。第三个来说就是安全性。最后就是最近流行的服务化架构、服务化治理,rpc框架是一个强力的支撑。
rpc是一种概念,http也是rpc实现的一种方式。论复杂度,dubbo/hessian用起来是超级简单的。最近用dubbo和hessian比较多,http的几乎都被废弃了。
至于为什么用,其实很简单,业务场景不一样。我最早的单位所有的代码都在一个工程里,一次要发布几百m的代码。这种架构是非常有利于小程序的。但是我们为什么要应用rpc层呢,一个功能,一套代码下来不就解决了么?我觉得有几个好处:
1灵活部署
2解耦至于为什么,当你用到的时候,你会体会。
系统做大了,肯定是需要做微服务的。比如做电商就是这样,单独有一个订单系统,支付系统,商品系统,用户系统。都是分开部署,单独上线的。但交互是用http接口来交互的,可以转用rpc。
用http交互其实就已经属于rpc了。
rpc的核心并不在于使用什么协议。rpc的目的是让你在本地调用远程的方法,而对你来说这个调用是透明的,你并不知道这个调用的方法是部署哪里。通过rpc能解耦服务,这才是使用rpc的真正目的。rpc的原理主要用到了动态代理模式,至于http协议,只是传输协议而已。简单的实现可以参考springremoting,复杂的实现可以参考dubbo。

变压器串联谐振耐压装置指导书(二)
小米未来智能手机市场的量和价该如何齐升
什么是窄带物联网
三星哈曼高级驾驶辅助系统V2P,可预判潜在事故
自制玩具四驱车
为什么需要RPC接口
如何检查红外热像仪时工作时参数设置是否正确规范的方法
英特尔推出首款搭载10nm工艺处理器NUC,显卡却是用的AMD的
江苏移动落地中国移动“9 one平台”计划
卫星导航与通信高度融合、应用效益显著
日本全力争夺电动汽车充电国际化标准的主权
Silicon Box计划建设chiplet半导体代工厂
热水壶温控开关拆解图
易锁宝锁具及冉物防丢器体验,锁住安全掌中握
终开卖,苹果AirPods耳机售价1288软妹币你要入手么?
PLC系统的软件故障和PLC硬件现场故障处理
北鲲云助力国产 EDA 芯片设计
基于上位机控制的单片机实验现场自动转接线设计电路图
C语言库memcpy和memmove的区别分析
360企业安全荣获VMware年度最佳技术联盟合作奖