1、Dubbo是什么?

Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。

官网:http://dubbo.apache.org

2、为什么要用Dubbo?

  1. Dubbo是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。
  2. 使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。
  3. 分布式架构可以承受更大规模的并发流量。

Dubbo常见问题及解决方案_spring


Dubbo常见问题及解决方案_spring_02

3、Dubbo 和 Spring Cloud 有什么区别?

两个没关联,如果硬要说区别,有以下几点。

  1. 通信方式不同

Dubbo 使用的是 RPC 通信,而 Spring Cloud 使用的是 HTTP RESTFul 方式。

  1. 组成部分不同
  2. Dubbo常见问题及解决方案_多协议_03

4、dubbo都支持什么协议,推荐用哪种?

dubbo://(推荐)

rmi://

hessian://

http://

webservice://

thrift://

memcached://

redis://

rest://

5、Dubbo需要 Web 容器吗?

不需要,如果硬要用 Web 容器,只会增加复杂性,也浪费资源。

6、Dubbo内置了哪几种服务容器?

Spring Container

Jetty Container

Log4j Container

Dubbo 的服务容器只是一个简单的 Main 方法,并加载一个简单的 Spring 容器,用于暴露服务。

7、Dubbo里面有哪几种节点角色?

Dubbo常见问题及解决方案_spring_04

8、画一画服务注册与发现的流程图

Dubbo常见问题及解决方案_多协议_05

9、Dubbo默认使用什么注册中心,还有别的选择吗?

推荐使用 Zookeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐。

10、Dubbo有哪几种配置方式?

  1. Spring 配置方式
  2. Java API 配置方式

11、Dubbo 核心的配置有哪些?

Dubbo常见问题及解决方案_spring_06

16、Dubbo有哪几种集群容错方案,默认是哪种?

Dubbo常见问题及解决方案_负载均衡_07

17、Dubbo有哪几种负载均衡策略,默认是哪种?

Dubbo常见问题及解决方案_负载均衡_08

18、注册了多个同一样的服务,如果测试指定的某一个服务呢?

可以配置环境点对点直连,绕过注册中心,将以服务接口为单位,忽略注册中心的提供者列表。

19、Dubbo支持服务多协议吗?

Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一服务上同时支持多种协议。

20、当一个服务接口有多种实现时怎么做?

当一个接口有多种实现时,可以用 group 属性来分组,服务提供方和消费方都指定同一个 group 即可。

21、Dubbo的管理控制台能做什么?

管理控制台主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

22、说说 Dubbo 服务暴露的过程。

Dubbo 会在 Spring 实例化完 bean 之后,在刷新容器最后一步发布 ContextRefreshEvent 事件的时候,通知实现了 ApplicationListenerServiceBean 类进行回调 onApplicationEvent 事件方法,Dubbo 会在这个方法中调用 ServiceBean 父类 ServiceConfigexport 方法,而该方法真正实现了服务的(异步或者非异步)发布。