之前对RPC不是很了解,查了很多资料,解释RPC时说了一堆原理和使用方法,但是没有很简练的说出RPC到底是什么,以此记录一下,如有问题请指出。
RPC 从字面理解是面向过程调用,什么叫过程调用,其实就是调用远程服务就像是本地方法调用,而不是像RESTFul一样需要在项目里些对应服务的地址和http method(get,put,delete,post),就像调用本地方法一样~
如果实现调用从serviceA调用serviceB的一个RPC调用呢?
RPC只是一个编程模型,不是一个标准,所以实现随便你,只要开发者不需要关心各种类似RESTFul的细枝末节的东西就行。
比如,Apache Thrift就是一个RPC调用框架,thrift会给你一个文件,你只需要通过IDE把文件导入到项目里,那么直接就可以调用方法了,而不用做RESTFul调用的各种配置(比如你用的spring feign client,需要看serviceB是那种http method,url是啥等等)。
至于RPC比ESTFul的优点,就是:
RPC其实是可以基于底层二级制的方式传播数据,而不像RESTFul是通过http的方式传播数据,http有各种东西,比如头信息里的各种配置。
所以RPC调用效率会更高。