锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

70道Dubbo面试题及答案(最新整理)

时间:2022-09-27 16:30:00 连接器70

Dubbo面试问答最新版Dubbo网上发现了很多面试题(2021版)Dubbo面试题和答案没有答案,所以收集这套花了很长时间。Dubbo面试题大全

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

这套Dubbo希望对大家有所帮助。~

博主已经把以下面试题整理成一个Dubbo面试手册,是的PDF版的

1.核心配置是什么?

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

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

2、RoundRobin LoadBalance: 循环选择提供者策略,平均分布,但存在要求积累的问题。

3、LeastActive LoadBalance: 至少积极调用策略,解决慢提供者接收较少请求的问题。

4、ConstantHash LoadBalance: 一致性 Hash 该策略总是将相同的参数请求发送给相同的供应商。机器停机,可以根据虚拟节点分配给其他供应商,以避免供应商的剧烈变化。

默认为 Random 随机调用。

3、Dubbo 使用什么通信框架?

默认使用 NIO Netty 框架

4.服务调用堵塞吗?

默认情况下是堵塞的,可以异步调用,没有返回值的可以这样做。

Dubbo 是基于 NIO 非阻塞并行调用,客户端无需启动多线程即可完成并行调用多远程服务。与多线程相比,成本较小,异步调用将返回一个 Future 对象。

5、dubbo 如何解决安全机制?

dubbo 通过 token 允许用户绕过注册中心直接连接,然后在注册中心管理授权,dubbo 控制服务允许的调用方提供黑白名单。

6、Dubbo 如何设置超时时间?

Dubbo 有两种方法可以设置超时时间:

超时时间设置在服务提供商端 Dubbo 在用户文档中,建议尽可能多地配置服务端,因为服务提供商比消费者更了解他们提供的服务特征。

服务消费者端设置超时间。如果在消费者端设置超时间,主要是消费者端,即优先级较高。因为服务调用器设置超时间控制更灵活。如果消费者加班,服务端线程不会定制,会发出警告。

7、Dubbo 注册中心集群挂了,人和订阅者还能通信吗?

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

每次调用时,按当地存储地址调用。

8、Dubbo telnet 命令能做什么?

dubbo 服务发布后,我们可以使用它 telnet 调试和管理命令。Dubbo2.0.5 上述服务提供端口支持 telnet 命令

你还知道其他分布式框架吗?

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

在使用过程中遇到了哪些问题?

如序列化问题。

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

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

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

dubbo 协议补充:

连接数:单连接

连接方式:长连接

传输协议:TCP

传输方式:NIO 异步传输

序列化:Hessian 二进制序列化

12、Dubbo 核心组件有哪些?

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

2、Consumer:呼叫远程服务消费者

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

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

5、Container:服务操作容器

13、Dubbo SPI 和 Java SPI 区别?

JDK SPI:

JDK 标准的 SPI 所有的扩展实现都将一次加载。如果有些扩展很耗时,但没用,那就是浪费资源。因此,仅仅加载某种实现是不现实的

DUBBO SPI:

1、对 Dubbo 扩展不需要改变 Dubbo 的源码

2、延迟加载可以一次只加载你想加载的扩展。

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

4、Dubbo 扩展机制可以很好地支持第三方 IoC 默认支持容器 Spring Bean。

14、Dubbo 是什么?

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

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

dubbo: 单一长连接和 NIO 异步通信适用于大并发小数据的服务调用,消费者远远大于提供商。传输协议 TCP,异步,Hessian 序列化;

rmi: 采用 JDK 标准的 rmi 实现协议需要实现传输参数和返回参数对象 Serializable 接口,使用 java 标准序列机制采用阻塞式短连接、传输数据包大小混合、消费者和提供者数量相似、可传输文件、传输协议 TCP。 多个短连接,TCP 协议传输,同步传输,适用常规的远程服务调用和 rmi 互操作。依赖低版本 Common-Collections 包,java 序列化存在安全漏洞;

webservice:基于 WebService 远程调用协议集成 CXF 实现,提供和出身 WebService 的互操作。基于多个短连接 HTTP 适用于系统集成和跨语言调用;http: 基于 Http 使用表单提交的远程调用协议 Spring 的 HttpInvoke 实现。多个短连接,传输协议 HTTP,参数大小混合,提供者比消费者多,需要给应用程序和浏览器 JS 调用; hessian: 集成 Hessian 服务,基于 HTTP 通讯,采用 Servlet 暴露服务,Dubbo 内嵌 Jetty 作为服务器时默认实现,提供与 Hession 互操作服务。多个短连接,同步 HTTP 传输,Hessian 序列化,传入参数大,提供者大于消费者,提供者压力大,可传文件;

memcache: 基于 Memcached 实现的 RPC 协议 Redis: 基于 Redis 实现的 RPC 协议

16、Dubbo 整体架构设计的分层是什么?

接口服务层(Service):根据业务逻辑,该层与业务逻辑有关 provider 和 consumer 业务设计对应的接口和实现

配置层(Config):对外配置接口,以 ServiceConfig 和 ReferenceConfig 为中心

服务代理层(Proxy):服务代理服务界面,生成客户端服务 Stub 和 服务端的 Skeleton,以 ServiceProxy 扩展接口为中心 ProxyFactory

服务注册层(Registry):注册和发现包装服务地址,以服务为基础 URL 扩展接口为中心 RegistryFactory、Registry、RegistryService

路由层(Cluster):多个供应商的路由和负载平衡,并与注册中心桥接Invoker 为中心,扩展接口为 Cluster、Directory、Router和LoadBlancce

监控层(Monitor):RPC监控调用次数和调用时间 Statistics 扩展接口为中心 MonitorFactory、Monitor和MonitorService

远程调用层(Protocal):封装 RPC 调用,以 Invocation 和 Result 扩展接口为中心 Protocal、Invoker和Exporter

信息交换层(Exchange):包装要求响应模式,同步转异步。 Request 和 Response 扩展接口为中心 Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer

网络传输层(Transport):抽象 mina 和 netty 以统一接口为准 Message 扩展接口为中心Channl、Transporter、Client、Server和Codec

数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、 ObjectInput、ObjectOutput和ThreadPool

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

Dubbo 提供了常见的集群策略实现,并预扩展点予以自行实现。

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

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

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

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

18、Dubbo 有哪些注册中心?

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

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

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

4、 Simple 注册中心。

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

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

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

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

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

Dubbo 必须依赖 JDK,其他为可选。

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

首先要解决通讯的问题:即A机器想要调用B机器,首先得建立起通信连接。

主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。

通常这个连接可以是按需连接(需要调用的时候就先建立连接,调用结束后就立马断掉),也可以是长连接(客户端和服务器建立起连接之后保持长期持有,不管此时有无数据包的发送,可以配合心跳检测机制定期检测建立的连接是否存活有效),多个远程过程调用共享同一个连接。

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

采用多版本开发,不影响旧版本。在配置中添加version来作为版本区分

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

服务的调用者启动的时候根据自己订阅的服务向服务注册中心查找服务提供者的地址等信息;

当服务调用者消费的服务上线或者下线的时候,注册中心会告知该服务的调用者;

服务调用者下线的时候,则取消订阅。

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

别的还有spring的spring cloud,facebook的thrift,twitter的finagle等

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

可以结合 zipkin 实现分布式服务追踪。

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

Spring 容器在启动的时候,会读取到 Spring 默认的一些 schema 以及 Dubbo 自定义的 schema,每个 schema 都会对应一个自己的 NamespaceHandler,NamespaceHandler 里面通过 BeanDefinitionParser 来解析配置信息并转化为需要加载的 bean 对象!

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

可以通过dubbo:reference 中设置mock="return null"。mock的值也可以修改为true,然后在跟接口同一个路径下实现一个Mock类,命名规则是"接口名称+Mock"后缀。然后在Mock类里实现自己的降级逻辑。

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

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

29、集群容错怎么做?

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

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

Dubbo 通过 Token 令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo 还提供服务黑白名单,来控制服务所允许的调用方。

更多 Dubbo 面试题70道

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

02、RPC的实现基础?

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

04、Dubbo 是什么?

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

06、Dubbo SPI 和 Java SPI 区别?

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

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

09、Dubbo telnet 命令能做什么?

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

11、你觉得用 Dubbo 好还是 Spring Cloud 好?

12、Dubbo Monitor 实现原理?

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

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

15、Dubbo 用到哪些设计模式?

16、Dubbo 如何优雅停机?

17、RPC使用了哪些关键技术,NIO通信

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

09、集群容错怎么做?

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

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

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

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

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

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

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

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

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

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

30、Dubbo 和 Dubbox 之间的区别?

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

32、PRC架构组件

33、dubbo 通信协议 dubbo 协议为什么采用异步单一长连接

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

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

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

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

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

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

40、为什么要有RPC

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

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

43、Dubbo 支持哪些序列化方式?

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

45、Dubbo telnet 命令能做什么

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

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

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

49、Dubbo 和 Spring Cloud 的区别?

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

60、Dubbo telnet 命令能做什么?

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

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

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

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

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

66、Dubbo 和 Spring Cloud 的区别?

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

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

69、Dubbo 如何优雅停机?

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

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

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

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

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章