有HTTP了,为什么还需要RPC?
rpc的目的就是通过像调用本地服务一样远程调用另一台服务器上的服务来完成需求。
调用这个远程服务的目的就是获取一个返回结果,然后客户端拿到这个结果再做相关的操作,那么问题来了,为什么不直接调用一个http的接口呢,将参数通过get或者post来传递,这样可以获取到相应的结果啊。又或者通过socket直接发送数据包来请求服务,然后服务端通过不同的数据包来执行不同的服务。
那么rpc的好处体现在哪里呢?
http接口是在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。但是如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。第三个来说就是安全性。最后就是最近流行的服务化架构、服务化治理,RPC框架是一个强力的支撑。