最新Dubbo面试题,附带详细答案(持续更新)

网上的Dubbo面试题及答案,但第一未必全,第二未必有答案,第三Dubbo面试题虽然有答案,但未必能在面试中说,所以在本文里,会不断收集各种面试题,并站在面试官的立场上,给出我自己的答案

如果不背 Dubbo面试题的答案,肯定面试会挂!

这套Dubbo面试题大全,希望对大家有帮助哈~

博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的

1、Dubbo集群提供了哪些负载均衡策略?

1、 Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀。

2、 RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题。

3、 LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收更少的请求。

4、 ConstantHash LoadBalance: 一致性 Hash 策略,使相同参数请求总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其他提供者,避免引起提供者的剧烈变动。

默认为 Random 随机调用。

2、Dubbo 服务器注册与发现的流程?

1、 Provider(提供者)绑定指定端口并启动服务。

2、 提供者连接注册中心,并发本机 IP、端口、应用信息和提供服务信息发送至注册中心存储。

3、 Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信息至注册中心。

4、 注册中心根据消费者所求服务信息匹配对应的提供者列表发送至 Consumer 应用缓存。

5、 Consumer 在发起远程调用时基于缓存的消费者列表择其一发起调用。

6、 Provider 状态变更会实时通知注册中心、在由注册中心实时推送至 Consumer。

3、同一个服务多个注册的情况下可以直连某一个服务吗?

可以直连,修改配置即可,也可以通过 telnet 直接某个服务。

4、默认使用什么序列化框架,你知道的还有哪些?

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

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

别的还有 spring 的 spring cloud,facebook 的 thrift,twitter 的 finagle 等。冲上云霄,Dubbo Go!GO语言版本都发布了~推荐阅读:Spring Cloud是什么,和Dubbo对比呢?

6、Dubbo 的使用场景有哪些?

1、 透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

2、 软负载均衡及容错机制:可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。

3、 服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

7、Dubbo 的注册中心集群挂掉,者和订阅者之间还能通信么?

可以的,启动 dubbo 时,消费者会从 zookeeper 拉取注册的生产者的地址接口等数据,缓存在本地。

每次调用时,按照本地存储的地址进行调用。

8、同一个服务多个注册的情况下可以直连某一个服务吗?

可以点对点直连,修改配置即可,也可以通过telnet直连某个服务。

9、默认使用什么序列化框架,你知道的还有哪些?

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

10、Dubbo 和 Dubbox 之间的区别?

dubbox 基于 dubbo 上做了一些扩展,如加了服务可 restful 调用,更新了开源组件等。

11、Dubbo 集群提供了哪些负载均衡策略?

1、 Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀;

2、 RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题;

3、 LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收更少的请求;

4、 ConstantHash LoadBalance: 一致性 Hash 策略,使相同参数请求总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其他提供者,避免引起提供者的剧烈变动;

5、 缺省时为 Random 随机调用

12、RPC的实现基础?

1、 需要有非常高效的网络通信,比如一般选择Netty作为网络通信框架;

2、 需要有比较高效的序列化框架,比如谷歌的Protobuf序列化框架;

3、 可靠的寻址方式(主要是提供服务的发现),比如可以使用Zookeeper来注册服务等等;

4、 如果是带会话(状态)的RPC调用,还需要有会话和状态保持的功能;

13、dubbo 通信协议 dubbo 协议适用范围和适用场景

适用范围:传入传出参数数据包较小(建议小于 100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用 dubbo 协议传输大文件或超大字符串。

适用场景:常规远程服务方法调用

dubbo 协议补充:

连接个数:单连接

连接方式:长连接

传输协议:TCP

传输方式:NIO 异步传输

序列化:Hessian 二进制序列化

14、Dubbo 是什么?

Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。

15、Dubbo 默认采用注册中心?

采用 Zookeeper

16、Dubbo SPI 和 Java SPI 区别?

JDK SPI:

JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展很耗时,但也没用上,很浪费资源。所以只希望加载某个的实现,就不现实了

DUBBO SPI:

1、 对 Dubbo 进行扩展,不需要改动 Dubbo 的源码

2、 延迟加载,可以一次只加载自己想要加载的扩展实现。

3、 增加了对扩展点 IOC 和 AOP 的支持,一个扩展点可以直接 setter 注入其它扩展点。

4、 Dubbo 的扩展机制能很好的支持第三方 IoC 容器,默认支持 Spring Bean。

17、Dubbo 有些哪些注册中心?

1、 Multicast 注册中心:Multicast 注册中心不需要任何中心节点,只要广播地址,就能进行服务注册和发现。基于网络中组播传输实现;

2、 Zookeeper 注册中心:基于分布式协调系统 Zookeeper 实现,采用Zookeeper 的 watch 机制实现数据变更;

3、 Redis 注册中心:基于 Redis 实现,采用 key/Map 存储,住 key 存储服务名和类型, Map 中 key 存储服务 URL, value 服务过期时间。基于 Redis 的/订阅模式通知数据变更;

4、 Simple 注册中心

18、Dubbo 超时时间怎样设置?

Dubbo 超时时间设置有两种方式:

服务提供者端设置超时时间,在 Dubbo 的用户文档中,推荐如果能在服务端多配置就尽量多配置,因为服务提供者比消费者更清楚自己提供的服务特性。

服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消费者端为主,即优先级更高。因为服务调用方设置超时时间控制性更灵活。如果消费方超时,服务端线程不会定制,会产生警告。

19、Dubbo telnet 命令能做什么?

dubbo 服务发布之后,我们可以利用 telnet 命令进行调试、管理。Dubbo2.0.5 以上版本服务提供端口支持 telnet 命令

20、Dubbo 和 Spring Cloud 有什么哪些区别?

Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。

Spring Cloud 是基于 Http 协议 Rest 接口调用远程过程的通信,相对来说 Http 请求会有更大的报文,占的带宽也会更多。但是 REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体考虑。

21、Dubbo 是什么?

Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和Spring 框架无缝集成

22、Dubbo 核心组件有哪些?

1、 Provider:暴露服务的服务提供方

2、 Consumer:调用远程服务消费方

3、 Registry:服务注册与发现注册中心

4、 Monitor:监控中心和访问调用统计

5、 Container:服务运行容器

23、说说核心的配置有哪些?

核心配置有:

1、 dubbo:service/

2、 dubbo:reference/

3、 dubbo:protocol/

4、 dubbo:registry/

5、 dubbo:application/

6、 dubbo:provider/

7、 dubbo:consumer/

8、 dubbo:method/

24、什么是RPC

RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简言之,RPC使得程序能够像访问本地系统资源一样,去访问远端系统资源。比较关键的一些方面包括:通讯协议、序列化、资源(接口)描述、服务框架、性能、语言支持等。

简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。

25、RPC使用了哪些关键技术,Thrift

是一种可伸缩的跨语言服务的软件框架。它拥有功能强大的代码生成引擎,无缝地支持C + +,C#,Java,Python和PHP和Ruby。thrift允许你定义一个描述文件,描述数据类型和服务接口。依据该文件,编译器方便地生成RPC客户端和服务器通信代码。

最初由facebook开发用做系统内个语言之间的RPC通信,2007年由facebook贡献到apache基金 ,现在是apache下的opensource之一 。支持多种语言之间的RPC方式的通信:php语言client可以构造一个对象,调用相应的服务方法来调用java语言的服务,跨越语言的C/S RPC调用。底层通讯基于SOCKET。

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

读操作建议使用 Failover 失败自动切换,默认重试两次其他服务器。写操作建议使用 Failfast 快速失败,发一次调用失败就立即报错。

27、Dubbo 的默认集群容错方案?

Failover Cluster

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

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

29、服务调用超时问题怎么解决?

dubbo 在调用服务不成功时,默认是会重试两次的。

30、同一个服务多个注册的情况下可以直连某一个服务吗?

可以点对点直连,修改配置即可,也可以通过 telnet 直接某个服务。

更多 Dubbo面试题 70道

01、RPC使用了哪些关键技术,建立通信

02、服务上线怎么不影响旧版本?

03、RPC使用了哪些关键技术,从调用者的角度看:

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

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

06、Dubbo 配置文件是如何加载到 Spring 中的?

07、Dubbo服务降级,失败重试怎么做?

08、在使用过程中都遇到了些什么问题?

09、集群容错怎么做?

10、Dubbo 在安全机制方面是如何解决?

11、同一个服务多个注册的情况下可以直连某一个服务吗?

12、默认使用什么序列化框架,你知道的还有哪些?

13、在使用过程中都遇到了些什么问题? 如何解决的?

14、Dubbo 配置文件是如何加载到Spring中的?

15、Dubbo 超时设置有哪些方式?

16、服务上线怎么不影响旧版本?

17、Dubbo Monitor 实现原理?

18、Dubbo 推荐什么协议?

19、Dubbo 和 Spring Cloud 的关系?

20、同一个服务多个注册的情况下可以直连某一个服务吗?

21、说说核心的配置有哪些?

22、Dubbo集群提供了哪些负载均衡策略?

23、Dubbo 使用的是什么通信框架?

24、服务调用是阻塞的吗?

25、dubbo 在安全机制方面如何解决的?

26、Dubbo 超时时间怎样设置?

27、Dubbo 的注册中心集群挂掉,者和订阅者之间还能通信么?

28、Dubbo telnet 命令能做什么?

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

30、在使用过程中都遇到了些什么问题?

31、Dubbo 超时时间怎样设置?

32、同一个服务多个注册的情况下可以直连某一个服务吗?

33、服务调用是阻塞的吗?

34、Dubbo 和 Spring Cloud 的区别?

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

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

37、Dubbo 如何优雅停机?

38、Dubbo 集群容错有几种方案?

39、Dubbo 服务降级,失败重试怎么做?

40、Dubbo 必须依赖的包有哪些?

41、dubbo 通信协议 dubbo 协议适用范围和适用场景

42、Dubbo 核心组件有哪些?

43、Dubbo SPI 和 Java SPI 区别?

44、Dubbo 是什么?

45、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

46、Dubbo 的整体架构设计有哪些分层?

47、Dubbo 集群的负载均衡有哪些策略?

48、Dubbo 有哪些注册中心?

49、Dubbo 的使用场景有哪些?

50、Dubbo必须依赖的包有哪些?

51、RPC使用了哪些关键技术,服务调用

52、为什么要用 Dubbo?

53、服务调用超时会怎么样?

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

55、Dubbo 推荐用什么协议?

56、Dubbo 与 Spring 的关系?

57、Dubbo 支持哪些协议,它们的优缺点有哪些?

58、RPC和SOA、SOAP、REST的区别

59、dubbo能做什么

60、Dubbo 服务器注册与发现的流程?

如果不背 Dubbo面试题的答案,肯定面试会挂!

这套Dubbo面试题大全,希望对大家有帮助哈~

博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值