我的理解,就是不同系统之间的通信,调用方法,需要把内容转成字节流传过去,对方收到解析,然后处理,在转成字节回来
原来只是了解 webservice 和 rest
现在学习 rpc ,谁能用通俗的语言解释下,知乎上那个没看懂啊
1
andy12530 2015-08-28 11:00:22 +08:00
JSON_RPC
|
2
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 风格? |
3
slixurd 2015-08-28 14:04:45 +08:00
RPC 还有 RabbitMQ 的 RPC 调用和 Redis 的 RPC
不过 Thrift 还是相对比较好的,毕竟使用起来简单,直接填坑就好了。 |
5
exch4nge 2015-08-28 16:31:28 +08:00
@li24361 哦, dubbo 看似主要应用场景是在分布式集群环境下的, google gprc 之类的只能算是一个 Lib 库而已,也没有集群的功能。
|
7
jackie9692 2015-08-28 22:32:50 +08:00
dubbo
|