之前對RPC不是很了解,查了很多資料,解釋RPC時說了一堆原理和使用方法,但是沒有很簡練的說出RPC到底是什么,以此記錄一下,如有問題請指出。
RPC 從字面理解是面向過程調(diào)用,什么叫過程調(diào)用,其實就是調(diào)用遠(yuǎn)程服務(wù)就像是本地方法調(diào)用,而不是像RESTFul一樣需要在項目里些對應(yīng)服務(wù)的地址和http method(get,put,delete,post),就像調(diào)用本地方法一樣~
如果實現(xiàn)調(diào)用從serviceA調(diào)用serviceB的一個RPC調(diào)用呢?
RPC只是一個編程模型,不是一個標(biāo)準(zhǔn),所以實現(xiàn)隨便你,只要開發(fā)者不需要關(guān)心各種類似RESTFul的細(xì)枝末節(jié)的東西就行。
比如,Apache Thrift就是一個RPC調(diào)用框架,thrift會給你一個文件,你只需要通過IDE把文件導(dǎo)入到項目里,那么直接就可以調(diào)用方法了,而不用做RESTFul調(diào)用的各種配置(比如你用的spring feign client,需要看serviceB是那種http method,url是啥等等)。

image.png
至于RPC比ESTFul的優(yōu)點,就是:
RPC其實是可以基于底層二級制的方式傳播數(shù)據(jù),而不像RESTFul是通過http的方式傳播數(shù)據(jù),http有各種東西,比如頭信息里的各種配置。
所以RPC調(diào)用效率會更高。