当前位置:   article > 正文

Dubbo支持哪些协议?各有什么特点?_dubbo三种协议的区别

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

 

 

 


【Java面试题与答案】整理推荐

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/506149
推荐阅读
相关标签
  

闽ICP备14008679号