RPC

作者: Robin92 | 来源:发表于2020-04-04 21:41 被阅读0次

    演进

    stub 封装了 client 对 RPC 服务的调用,屏蔽了网络的细节。

    核心

    动态代理,是 RPC 的核心。

    通过动态代理实现了这个实例。就像 PHP 的 call_user_function 一样,传入了 代理、方法、参数。由代理去做网络的处理细节。远程去连接并调用。

    序列化框架

    序列化,转换成二进制,另一端反序列化,转换成要处理的对象。

    RPC 的序列化框架(Serialize Framework)

    • google protobuf
    • Hessian
    • thrift
    • kyro
    • json 序列化框架(Jackson、google Gson……)
    • xmlrpc
    • ……

    完整的 RPC 的框架,要包含:服务注册、服务发现、服务治理、服务的负载均衡…… protobuf 只是一个序列化框架。

    • 序列化:将对象转换成二进制字节数组
    • 反序列化:将二进制字节数组转换成序列化

    为什么要用序列化

    • 长度变小,节省流量
    • 时间更少,响应更快

    RPC 网络协议

    RPC 还可以选不同的协议,如 http、tcp、webservice、mail等。gRPC 是用的 http2.0 双工的,可以传二进制。

    webservice 是 http + xml 的标准化 Web API。XML 纯文本,太大了。几乎要被淘汰了。取而代之的是 RESTful API,http + json。

    相关文章

      网友评论

          本文标题:RPC

          本文链接:https://www.haomeiwen.com/subject/vjssphtx.html