V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
li24361
V2EX  ›  程序员

请教一下 RPC 框架,搜了一些资料,还是模模糊糊的

  •  
  •   li24361 · 2015-08-28 10:59:36 +08:00 · 2406 次点击
    这是一个创建于 3172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的理解,就是不同系统之间的通信,调用方法,需要把内容转成字节流传过去,对方收到解析,然后处理,在转成字节回来

    原来只是了解 webservice 和 rest

    现在学习 rpc ,谁能用通俗的语言解释下,知乎上那个没看懂啊

    7 条回复    2015-08-28 22:32:50 +08:00
    andy12530
        1
    andy12530  
       2015-08-28 11:00:22 +08:00
    JSON_RPC
    exch4nge
        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 风格?
    slixurd
        3
    slixurd  
       2015-08-28 14:04:45 +08:00
    RPC 还有 RabbitMQ 的 RPC 调用和 Redis 的 RPC
    不过 Thrift 还是相对比较好的,毕竟使用起来简单,直接填坑就好了。
    li24361
        4
    li24361  
    OP
       2015-08-28 15:55:02 +08:00
    @exch4nge
    @slixurd

    谢谢
    dubbo 这个很有名,他和 google grpc 有什么区别吗
    exch4nge
        5
    exch4nge  
       2015-08-28 16:31:28 +08:00
    @li24361 哦, dubbo 看似主要应用场景是在分布式集群环境下的, google gprc 之类的只能算是一个 Lib 库而已,也没有集群的功能。
    li24361
        6
    li24361  
    OP
       2015-08-28 16:39:42 +08:00
    @exch4nge 谢谢,如果分布式 rpc 就用 dubbo ,一个环境内的不同系统,用 grpc 对吧
    jackie9692
        7
    jackie9692  
       2015-08-28 22:32:50 +08:00
    dubbo
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2459 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:03 · PVG 17:03 · LAX 02:03 · JFK 05:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.