本篇总结的是Dubbo相关的面试题,后续会持续更新,希望我的分享可以帮助到正在备战面试的实习生或者已经工作的同行,如果发现错误还望大家多多包涵,不吝赐教,谢谢~
目录
1. Dubbo是什么?
Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。
提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。
2. SpringCloud和Dubbo有哪些区别?
1)通信方式和性能
Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC。而SpringCloud是基于Http协议+rest接口调用远程过程的,相对来说,Http请求会有更大的报文,占的带宽也会更多。
2)组成部分不同
1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;
2、相比起Dubbo简单的四个模块,SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务追踪等;
3. Dubbo默认使用什么注册中心,还有别的选择吗?
推荐使用 Zookeeper 作为注册中心,还可以选择 Redis、Multicast、Simple 注册中心。
4. Dubbo有哪几种负载均衡策略,默认是哪种?
- Random LoadBalance:(默认)随机选取提供者策略,随机转发请求,可以加权
- RoundRobin LoadBalance:轮循选取提供者策略,请求平均分布
- LeastActive LoadBalance:最少活跃调用策略,可以让慢提供者接收更少的请求
- ConstantHash LoadBalance:一致性 Hash 策略,相同参数请求总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其他提供者
5. Dubbo支持分布式事务吗?
目前暂时不支持,可使用阿里开源的分布式事务中间件
https://github.com/seata/seata
6. Dubbo的管理控制台能做什么?
管理控制台主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。
7. 你还了解别的分布式框架吗?
别的还有 Spring cloud、Facebook 的 Thrift、Twitter 的 Finagle 等。