exch4nge
2015-08-28 13:13:49 +08:00
我说说我的理解吧。
就按字面意思理解, Remote Procedure Call ,就是说你可以 call 远端的代码。
实现方式就是你说的,把你想调用的方法参数通过某种手段变成一段二进制数据,然后通过某种通道传到远端机器上,远端机器解析出来之后,调用相应的处理函数。
能实现 RPC 的框架有很多,微软自己的 Windows RPC ;跨平台跨语言的 thrift 、 google grpc ;等等
-----------------------------------------------------------------------------------------------------------------------------
具体说的话,一般 RPC 框架依赖两个功能,一个是底层的通信方法或协议,如 HTTP , TCP 协议,或者是其它类似你说的 web service ;另一个是数据的序列化 /反序列化,但是有时候前面那个通信方法就规定好了数据是什么格式。
RPC 框架通过这两个功能,把客户端想要调用的服务端的方法与参数封装成数据,再通过底层通信方法传输,服务端解封数据包,并调用相应接口,而达到了 RPC 的目的。
-----------------------------------------------------------------------------------------------------------------------------
Rest 算是一种架构风格?或者 HTTP API 风格?