Dubbo面试题总结

目录

1 Dubbo都支持什么协议,推荐用哪种?

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

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

4 Dubbo有哪几种配置方式?

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

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

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

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

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

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

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

12 Dubbo如何优雅停机?

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

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

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

16 Dubbo运行时,突然所有的ZooKeeper全部宕机,Dubbo是否还会继续提供服务?


1 Dubbo都支持什么协议,推荐用哪种?

  • dubbo://(推荐)

  • rmi://

  • hessian://

  • http://

  • webservice://

  • thrift://

  • memcached://

  • redis://

  • rest://


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

  • Spring Container

  • Jetty Container

  • Log4j Container

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


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

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


4 Dubbo有哪几种配置方式?

  • XML配置
  • 注解
  • Java API

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

1)timeout:方法调用超时

2)retries:失败重试次数,默认重试 2 次

3)loadbalance:负载均衡算法,默认随机

4)actives 消费者端,最大并发调用限制


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

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


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

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

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

负载均衡策略 说明
Random LoadBalance 随机,按权重设置随机概率(默认)
RoundRobin LoadBalance 轮询,按公约后的权重设置轮询比率
LeastActive LoadBalance 最少活跃调用数,相同活跃数的随机
ConsistentHash LoadBalance 一致性Hash,相同参数的请求总是发到同一提供者

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

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


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

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


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

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


12 Dubbo如何优雅停机?

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


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

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


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

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

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


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

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


16 Dubbo运行时,突然所有的ZooKeeper全部宕机,Dubbo是否还会继续提供服务?

会的,dubbo根据本地缓存的服务地址进行服务调用

  • 监控中心宕掉不影响使用,只是丢失部分采样数据
  • 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
  • 注册中心对等集群,任意一台宕掉后,将自动切换到另一台
  • 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
  • 服务提供者无状态,任意一台宕掉后,不影响使用
  • 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
发布了62 篇原创文章 · 获赞 80 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_30342639/article/details/100888471