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