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面试题与答案】整理推荐

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值