Java面试题更新 2026-08-05

请说明Dubbo框架中可供选择的通信协议种类,并简述各自的主要特点。

技术原理技术选型方案权衡Apache DubboJava

考察说明

考查对Dubbo通信协议体系及选型要点的掌握程度。

回答思路

  1. 【回答框架 1】Dubbo默认使用Dubbo协议,这是一种基于TCP的长连接协议,采用NIO异步通信,适合小数据量、高并发的服务调用场景。
  2. 【回答框架 2】Hessian协议基于HTTP,使用Hessian序列化,适合跨语言或需要穿透防火墙的场景,但性能略低于Dubbo协议。
  3. 【回答框架 3】RMI协议基于Java原生的远程方法调用,支持Java原生序列化,但需要依赖Java环境,且不推荐用于高并发场景。
  4. 【回答框架 4】也可以使用HTTP协议(如通过Spring MVC暴露服务),以及WebService协议(基于SOAP),这些协议可扩展性较好,但性能相对较低。
  5. 【回答框架 5】在实际项目中,应根据业务数据量、并发要求、跨语言需求等因素选择合适的协议,并在配置文件中通过<dubbo:protocol>进行指定。
  6. 【关键点 1】Dubbo默认协议是基于TCP的NIO长连接协议,适合高并发小数据量场景。
  7. 【关键点 2】Hessian协议基于HTTP,适合跨语言调用。
  8. 【关键点 3】RMI基于Java原生,适合内网且对性能要求不高的场景。
  9. 【关键点 4】协议选择需权衡性能、跨语言、防火墙穿透等因素。
  10. 【易错点 1】不要认为协议越多越好,协议选择不当会引入额外复杂度和性能损失。
  11. 【易错点 2】不要混淆Dubbo协议与Hessian序列化,前者是通信协议,后者是序列化方式。