Dubbo面试题以及答案,看完碾压面试官

Dubbo面试题以及答案,看完碾压面试官

  • 1.dubbo是什么?
  • 2.为什么要用到dubbo(你们技术选型的时候为什么要考虑到用它)?
  • 3.Dubbo的协议(推荐用哪种?)
  • 4.Dubbo需要WEB容器吗?
  • 5.Dubbo内置了几种服务容器?
  • 6.Dubbo里面有哪几种节点角色?
  • 7.画一画服务注册与发现的流程图?
  • 8.Dubbo默认使用什么注册中心,还有别的选择吗?
  • 9.Dubbo有哪几种配置方式?
  • 10.Dubbo核心的配置有哪些?
  • 11在Provider上可以配置的Consumer端的属性有哪些?
  • 12Dubbo启动时如果依赖服务不可用怎么办?
  • 13Dubbo推荐使用什么序列化框架,你知道的还有哪些?
  • 14Dubbo默认使用的是什么通信框架,还有别的选择吗?
  • 15Dubbo有哪几种集群容错方案,默认是哪种?
  • 16Dubbo有哪几种负载均衡策略,默认是哪几种?
  • 17注册了多个同一样的服务,如果检测指定的某一个服务呢?
  • 18Dubbo支持多协议吗?
  • 19当一个服务接口有多种实现怎么办?
  • 20服务上线怎么兼容旧版本?
  • 21Dubbo可以对结果进行缓存吗?
  • 22Dubbo服务之间的调用是阻塞的吗?
  • 23Dubbo支持分布式事务吗?
  • 24Dubbo telnet 命令能做什么?
  • 25Dubbo支持服务降级吗?
  • 26Dubbo如何优雅停机?
  • 27服务提供者能实现失效踢出是什么原理?
  • 28如何解决服务调用链过长的问题?
  • 29服务读写推荐的容错策略是怎样的?
  • 30Dubbo必须依赖的包有哪些?
  • 31Dubbo的管理控制台能做什么?
  • 32Dubbo服务暴露的过程?
  • 33Dubbo和dubbox的区别?
  • 34你还了解过其他的分布式框架吗?
  • 35Dubbo能集成Spring Cloud吗?
  • 36在使用中遇到的那些问题?
  • 37你觉得用dubbo好还是用Spring Cloud好?

1.dubbo是什么?

dubbo是阿里的开源的基于java的高性能rpc分布式服务框架,现已(2018)成为Apache基金会的孵化项目

2.为什么要用到dubbo(你们技术选型的时候为什么要考虑到用它)?

因为它是阿里的开源项目,国内很多的互联网都在用。已经经过了很多线上的考验。内部使用了Netty、Zookeeper确保了高性能高可用性。
使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,是前端应用能更快的响应多变的市场需求

3.Dubbo的协议(推荐用哪种?)

dubbo(推荐使用 采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)),http,redis,webservice,rmi,hessian,thrift,memcached,rest(调你会的说)

4.Dubbo需要WEB容器吗?

不需要,如果硬要用的话,只会增加复杂性,也会浪费资源

5.Dubbo内置了几种服务容器?

  1. Spring Contaniner
  2. Jetty Container
  3. Log4j Container
    Dubbo的服务容器只是一个简单的Main方法,并加载一个简单的Spring容器,用于暴露服务。

6.Dubbo里面有哪几种节点角色?

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

7.画一画服务注册与发现的流程图?

Dubbo面试题以及答案,看完碾压面试官_第1张图片
Dubbo面试题以及答案,看完碾压面试官_第2张图片

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

推荐使用ZookeeperZookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 [1]。作为注册中心

redis(阿里内部并没有采用 Redis 做为注册中心,而是使用自己实现的基于数据库的注册中心,即:Redis 注册中心并没有在阿里内部长时间运行的可靠性保障,此 Redis 桥接实现只为开源版本提供,其可靠性依赖于 Redis 本身的可靠性)不推荐

simple,mukticast (Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。)但不推荐

9.Dubbo有哪几种配置方式?

1.XML配置

  • API配置
  • 注解配置
  • 属性配置

10.Dubbo核心的配置有哪些?

配置 配置说明
dubbo:service 服务配置
dubbo:method 方法配置
dubbo:protocol 协议配置
dubbo:provider 提供方配置
dubbo:consumer 消费方配置
dubbo:application 应用名称
dubbo:reference 引用配置
dubbo:registry 注册中心配置
dubbo:argument 参数配置
dubbo:mudule 模块配置
dubbo:monitor 监控中心配置

(最少能说出一下几个都是常用的 不知道一定不熟悉)


  
    
      
     
      
     
      
     
      
     
      

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

Dubbo面试题以及答案,看完碾压面试官_第3张图片
关键几个:

  • timeout:方法调用超时
  • retries:失败重试次数,默认重试2次
  • loadbalance:负载均衡算法,默认随机(random)(roundrobin,leastactive,ConsisitenHash,分别表示:轮询,最少活跃调用,一致Hash)
  • actives:消费者端,最大并发调用限制

 

    

12Dubbo启动时如果依赖服务不可用怎么办?

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

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

推荐使用Hessian序列化,它的底层就是基于Hessian,还有0Dubbo,fastJson,java自带的序列化

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

默认是Netty框架,也是推荐使用的,还有Mina,,Grizzly

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

集群容错方案 说明
Failover Cluster 失败自动切换,自动重试其他服务器(默认)
Failfast Cluster 快速失败,立即报错,只发起一次调用
Failsafe Cluster 失败安全,出现异常时,直接忽略
Failback Cluster 失败自动恢复,记录失败请求,定时重发
Failking Cluster 并行调用多个服务器,只要一个成功及返回
Failcast Cluster 广播逐个调用所有的提供者,任意一个报错则报错

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

前面提到过, 随机(默认),轮询,最少活跃数,一致Hash

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

可以配置环境点对点直连,绕过注册中心,将以服务接口为单位,忽略注册中心的提供者列表。
注册了多个同一样的服务,如果检测指定的某一个服务呢?

18Dubbo支持多协议吗?

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

19当一个服务接口有多种实现怎么办?

可以用group属性来分,服务提供方和消费方都可以指定同一个group即可。

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

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

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

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

22Dubbo服务之间的调用是阻塞的吗?

默认是同步等待结果阻塞的,支持异步调用。

23Dubbo支持分布式事务吗?

支持(2018)但不成熟生产环境不可使用

24Dubbo telnet 命令能做什么?

进行服务治理

25Dubbo支持服务降级吗?

Dubbo2.2.0以上支持

26Dubbo如何优雅停机?

Dubbo是通过jdk的shutDownHook来完成优雅停机的,所以如果使用Kill-9 PID等强制关闭指令,是不会执行优雅停机的,只是通过kill PID时,才会执行。

27服务提供者能实现失效踢出是什么原理?

服务失效踢出基于Zookeeper的临时节点原理

28如何解决服务调用链过长的问题?

Dubbo可以使用Pinpoint和Apache Skywalking实现分布式服务追踪

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

读操作建议使用Failover失败自动切换,写操作建议使用Failfst快速失败,并一次调用失败就立即报错

30Dubbo必须依赖的包有哪些?

Dubbo必须依赖JDK,其他可选

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

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

32Dubbo服务暴露的过程?

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

33Dubbo和dubbox的区别?

Dubbox是继Dubbo停止维护后,当当网基于dubbo做的一个拓展应用

34你还了解过其他的分布式框架吗?

springcloud,facebook的Thrift,teitter的finagle

35Dubbo能集成Spring Cloud吗?

可以的

36在使用中遇到的那些问题?

dubbo的设计目的是为了满足高并发小数据量的rpc调用,在大数据下的性能表现并不好,建议使用rmi或者http协议

37你觉得用dubbo好还是用Spring Cloud好?

没有好坏,只有适合 我倾向于Dubbo ,Spring Cloud的更新速度太快,配置太繁琐,外国人的东西总归不如自己人的东西顺手

你可能感兴趣的:(面试)