架构师面试题系列之 Dubbo 面试专题
1. Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
� dubbo: 单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调
用,以及消费者远大于提供者。传输协议 TCP,异步, Hessian 序列
化;
� rmi: 采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要
实现 Serializable 接口,使用 java 标准序列化机制,使用阻塞式短连
接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传
输协议 TCP。多个短连接, TCP 协议传输,同步传输,适用常规的远
程服务调用和 rmi 互操作。在依赖低版本的 Common-Collections
包, java 序列化存在安全漏洞;
� http: 基于 Http 表单提交的远程调用协议,使用 Spring 的
HttpInvoke 实现。多个短连接,传输协议 HTTP,传入参数大小混合,
提供者个数多于消费者,需要给应用程序和浏览器 JS 调用;
� webservice: 基于 WebService 的远程调用协议,集成 CXF 实现,提
供和原生 WebService 的互操作。多个短连接,基于 HTTP 传输,同
步传输,适用系统集成和跨语言调用;
� ** hessian**: 集成 Hessian 服务,基于 HTTP 通讯,采用 Servlet
暴露服务,Dubbo 内嵌 Jetty 作为服务器时默认实现,提供与 Hession