• 「笔耕不辍」常见远程调用协议


    RMI协议

    RMI 协议采用 JDK 标准的 java.rmi.*实现,采用阻塞式短连接和 JDK 标准序列

    化方式,Java 标准的远程调用协议。

    连接个数:多连接

    连接方式:短连接

    传输协议:TCP

    传输方式:同步传输

    序列化:Java 标准二进制序列化

    适用范围:传入传出参数数据包大小混合,消费者与提供者个数差不多,可传

    文件。

    适用场景:常规远程服务方法调用,与原生 RMI 服务互操作

    Hessian协议

    Hessian 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用

    Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现

    基于 Hessian 的远程调用协议。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

    序列化:Hessian 二进制序列化适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较

    大,可传文件。

    适用场景:页面传输,文件传输,或与原生 hessian 服务互操作

    http

    采用 Spring 的 HttpInvoker 实现

    基于 http 表单的远程调用协议。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

    序列化:表单序列化(JSON)

    适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览

    器查看,可用表单或 URL 传入参数,暂不支持传文件。

    适用场景:需同时给应用程序和浏览器 JS 使用的服务。

    Webservice

    基于 CXF 的 frontend-simple 和 transports-http 实现

    基于 WebService 的远程调用协议。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

    序列化:SOAP 文本序列化

    适用场景:系统集成,跨语言调用。

    Thrif

    Thrift 是 Facebook 捐给 Apache 的一个 RPC 框架,当前 dubbo 支持的 thrift

    协议是对 thrift 原生协议的扩展,在原生协议的基础上添加了一些额外的头信

    息,比如 service name,magic number 等

  • 相关阅读:
    Dart(3)-常量
    android view放大被遮挡,我来解决
    Jenkins 面试题及答案整理,最新面试题
    1-乙基-3-甲基咪唑四氟硼酸盐/[C2MIm]BF4/cas:143314-16-3/分子量:197.97/离子液体
    KBQA知识图谱问答
    controller、service、Dao是否是线程安全的?
    【Python系列】数字的bool值
    【第49篇】Swin Transformer V2:扩展容量和分辨率
    华为交换机:配置telnet和ssh、web访问
    程序员的数学课15 递归:如何计算汉诺塔问题的移动步数?
  • 原文地址:https://blog.csdn.net/weixin_43719843/article/details/126925630