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

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协议

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对dubbo的协议的学习,可以知道目前主流RPC通信大概是什么情况,本文参考dubbo官方文档http://dub...
    把爱放下会走更远阅读 1,345评论 1 1
  • 1、默认协议Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数...
    亭台雨榭111阅读 1,341评论 0 1
  • 先放一张合照镇楼。画风什么的,请忽略不计(手动笑哭) 这是我随手在饭店墙上的镜子上拍的。合照嘛,大家都知道,很难令...
    琢玉成器阅读 1,194评论 0 1
  • 刹那惊叹,时光荏苒,飞逝似那天际的飞燕,眨眼间便已无影无踪;悄然似那甜美的姑娘,悄悄偷走男孩的心;无情似那...
    打更者阅读 385评论 1 0