美文网首页Java技术升华Java架构技术干货
阿里首席架构师科普RPC框架

阿里首席架构师科普RPC框架

作者: Java架构 | 来源:发表于2018-06-19 17:56 被阅读62次

    RPC概念及分类
    RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。

    从通信协议的层面,大致可以分为:

    基于HTTP协议的(例如基于文本的SOAP(XML)、Rest(JSON),基于二进制Hessian(Binary))

    基于TCP协议的(通常会借助Mina、Netty等高性能网络框架)

    从不同的开发语言和平台层面,分为:

    单种语言或平台特定支持的通信技术(例如Java平台的RMI、.NET平台Remoting)

    支持跨平台通信的技术(例如HTTP Rest、Thrift等)

    从调用过程来看,分为:

    同步通信调用(同步RPC)

    异步通信调用(MQ、异步RPC)

    常见的几种通信方式

    1. 远程数据共享(例如:共享远程文件,共享数据库等实现不同系统通信)

    2. 消息队列

    3. RPC(远程过程调用)

    序列化/反序列化
    只有二进制数据才能在网络中传输,序列化和反序列化的定义是:

    将对象转换成二进制流的过程叫做序列化,

    将二进制流转换成对象的过程叫做反序列化。

    Java和.NET平台中常见的通信技术
    Java中支持的包括:


    1.jpg

    .NET中包括:

    2.jpg

    互联网时代常见的RPC技术和框架
    应用级的服务框架:

    Dubbo/Dubbox

    ZeroICE

    GRpc

    Spring Boot/Spring Cloud

    基础通信框架:

    Protocol Buffers

    Thrift

    远程通信协议:

    RMI

    Socket

    SOAP(HTTP XML)

    REST(HTTP JSON)

    RPC的注意事项
    性能
    影响RPC性能的主要在几个方面:

    1.序列化/反序列化的框架

    2.网络协议,网络模型,线程模型等

    安全
    RPC安全的主要在于服务接口的鉴权和访问控制支持。

    跨平台
    跨不同的操作系统,不同的编程语言和平台。

    跨平台RPC技术和常见框架
    SOAP WebService

    Hessian

    HTTP Rest

    Thrift

    GRpc(Protobuffer)

    Zero ICE

    消息中间件

    RPC框架的视频已经录制好,分享群619881427中免费下载学习,希望能够帮助有需要的程序员们。

    相关文章

      网友评论

        本文标题:阿里首席架构师科普RPC框架

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