美文网首页分布式、微服务架构dubbo
Dubbo支持的协议及适用的场景(摘选)

Dubbo支持的协议及适用的场景(摘选)

作者: 阿斯蒂芬2 | 来源:发表于2017-11-16 10:56 被阅读49次

    Dubbo支持的多种协议,如下:

    1、dubbo协议

     缺省协议,使用基于netty5.0+hessian3.2.1交互。

    连接个数:单连接

    连接方式:长连接

    传输协议:TCP

    传输方式:NIO异步传输

    序列化:Hessian二进制序列化

    适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。

    适用场景:常规远程服务方法调用


    2、rmi协议

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

    连接个数:多连接

    连接方式:短连接

    传输协议:TCP

    传输方式:同步传输

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

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

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


    3、hessian协议

    Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

    序列化:Hessian二进制序列化

    适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。

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


    4、http协议

    基于http表单的远程调用协议,采用Spring的HttpInvoker实现。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

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

    适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。

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


    5、webservice协议

    基于WebService的远程调用协议,基于CXF的frontend-simpletransports-http实现。

    连接个数:多连接

    连接方式:短连接

    传输协议:HTTP

    传输方式:同步传输

    序列化:SOAP文本序列化

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


    6、thrift协议

    Thrift是Facebook捐给Apache的一个RPC框架,当前 dubbo 支持的 thrift 协议是对 thrift 原生协议的扩展,在原生协议的基础上添加了一些额外的头信息,比如service name,magic number等。


    7、memcached协议


    8、redis协议

    相关文章

      网友评论

      • 346673164:大神牛逼! 高端大气上档次啊!

      本文标题:Dubbo支持的协议及适用的场景(摘选)

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