Dubbo支持哪些协议?各有什么特点?

1、dubbo 默认协议:

  • 单一 TCP 长连接,Hessian 二进制序列化和 NIO 异步通讯
  • 适合于小数据包大并发的服务调用和服务消费者数远大于服务提供者数的情况
  • 不适合传送大数据包的服务

2、rmi 协议:

  • 采用 JDK 标准的 java.rmi.* 实现,采用阻塞式短连接和 JDK 标准序列化方式
  • 如果服务接口继承了 java.rmi.Remote 接口,可以和原生 RMI 互操作
  • 因反序列化漏洞,需升级 commons-collections3 到 3.2.2版本或 commons-collections4 到 4.1 版本
  • 对传输数据包不限,消费者和传输者个数相当

3、hessian 协议:

  • 底层 Http 通讯,Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现
  • 可与原生 Hessian 服务互操作
  • 通讯效率高于 WebService 和 Java 自带的序列化
  • 参数及返回值需实现 Serializable 接口,自定义实现 List、Map、Number、Date、Calendar 等接口
  • 适用于传输数据包较大,提供者比消费者个数多,提供者压力较大

4、http 协议:

  • 基于 http 表单的远程调用协议,短连接,json 序列化
  • 对传输数据包不限,不支持传文件
  • 适用于同时给应用程序和浏览器 JS 使用的服务

5、webservice 协议:

  • 基于 Apache CXF 的 frontend-simple 和 transports-http 实现,短连接,SOAP文本序列化
  • 可与原生 WebService 服务互操作
  • 适用于系统集成、跨语言调用

6、thrift 协议:

  • 对 thrift 原生协议 [2] 的扩展添加了额外的头信息
  • 使用较少,不支持传 null 值

7、基于 Redis实现的 RPC 协议

8、基于 Memcached 实现的 RPC 协议

官方文档:http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-protocol.html

给TA打赏
共{{data.count}}人
人已打赏
Java

Redis如何实现分布式锁?

2020-7-31 8:18:20

Java

Dubbo框架分了哪些层?

2020-7-31 8:21:40

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索