dubbo的面试点

1.Dubbo是什么

Dubbo是阿里巴巴开源的基于java的高性能RPC分布式服务框架

2.为啥要用Dubbo

因为是阿里开源项目,已经过很多上线考验。

内部使用了Netty、Zookeeper保证了高性能和高可用性

使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务的复用、灵活、扩展,使前端应用能更快的响应多变的市场需求。

Dubbo 的服务治理图

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

  1. 通信方式不同

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

  2. 组成部分不同

4、Dubbo支持的协议

  1. dubbo(推荐)
  2. rmi
  3. hessian
  4. http
  5. webservice
  6. thrift
  7. memcached
  8. redis
  9. rest

5、Dubbo需要Web容器吗?

      不需要,只会增加复杂性,也浪费资源。

6、Dubbo内置服务 容器

  1. Spring Container
  2. Jetty Container
  3. Log4j Container

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

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

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

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

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

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

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

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

12、在 Provider 上可以配置的 Consumer 端的属性有哪些?

  1. timeout:方法调用超时
  2. retries:失败重试次数,默认重试 2 次
  3. loadbalance:负载均衡算法,默认随机
  4. actives 消费者端,最大并发调用限制

13、Dubbo启动时如果依赖的服务不可用会怎样?

        Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,默认 check="true",可以通过 check="false" 关闭检查。

14、Dubbo推荐使用什么序列化框架,你知道的还有哪些?

        推荐使用Hessian序列化,还有Duddo、FastJson、Java自带序列化。

15、Dubbo默认使用的是什么通信框架,还有别的选择吗?

        Dubbo 默认使用 Netty 框架,也是推荐的选择,另外内容还集成有Mina、Grizzly。

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

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

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

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

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

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

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

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

21、服务上线怎么兼容旧版本?

        可以用版本号(version)过渡,多个不同版本的服务注册到注册中心,版本号不同的服务相互间不引用。这个和服务分组的概念有一点类似。

22、Dubbo可以对结果进行缓存吗?

        可以,Dubbo 提供了声明式缓存,用于加速热门数据的访问速度,以减少用户加缓存的工作量。

23、服务读写推荐的容错策略是怎样的?

        读操作建议使用 Failover 失败自动切换,默认重试两次其他服务器。

        写操作建议使用 Failfast 快速失败,发一次调用失败就立即报错。

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

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

25、你还了解别的分布式框架吗?

       别的还有 Spring cloud、Facebook 的 Thrift、Twitter 的 Finagle 等。

26、Dubbo 能集成 Spring Boot 吗?

       可以的,项目地址如下。

       https://github.com/apache/incubator-dubbo-spring-boot-project

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值