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

article/2025/9/24 4:00:12

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 命令

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

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

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

如序列化问题。

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 为中心,扩展接口为Channel、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版的

 


http://chatgpt.dhexx.cn/article/YXxlZfWg.shtml

相关文章

5G SCMA MPA算法

SCMA编码原理如图1所示,这里以六个用户在四个资源块上传输,每个用户采用4点星座图进行调制为例来说明。每个用户对应一个独一无二的码本,每个码本是一个44的复数矩阵,其中矩阵的行表示资源块,矩阵的列表示码字。每个用…

CSMA/CA协议详解

参考:(20条消息) CSMA/CA协议详解【计算机网络】_蓝莓派Alex的博客-CSDN博客_csma/ca 笔记: 无线电波能够向所有的方向传播,且其传播距离受限。当电磁波在传播过程中遇到障碍物时,其传播距离就会受到限制。 如图:如果…

【通信-SCMA】基于串行干扰消除的多用户检测算法附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

SCOM

SCOM&#xff1a;Synchronized COMmunication module 使用的时候要包含:#include <scom.h> 使用的类型和常数typedef struct SCOM_Attrs { /* SCOM object creation attributes */Char dummy; /* no attributes at present */} SCOM_Attrs;t…

SCMA稀疏码多址调制解调系统概述和matlab仿真

目录 1. 引言 2. 数学原理 2.1 资源分配和稀疏码本 2.2 SCMA的编码和调制 2.3 SCMA的信道传输和解调 3. 实现过程 3.1 稀疏码本的构建 3.2 SCMA编码过程 3.3 SCMA解调过程 4. 应用领域 5. 实现难点 5.1 资源分配和编码映射 5.2 信道传输和解调算法 5.3 多用户干扰…

5G通信演进和常见名词释义

写在前面 由于工作性质的变化&#xff0c;需要对5G的通信原理、架构和标准进行深入的了解。借此分享一下5G通信技术初步学习的内容。 通信系统发展演进 5G的含义&#xff0c;即第五代移动通信系统和技术。这种叫法是3G时代开创的&#xff0c;随3G-4G-5G一直沿用下来。那有没…

CSMA、CSMA/CD与CSMA/CA协议

载波监听多路访问&#xff08;CSMA&#xff09;协议 若每个站点在发送数据之前都先侦听一下公用信道&#xff0c;如果信道空闲后再发送&#xff0c;则就会大大降低冲突的可能性&#xff0c;从而提高信道的利用率 。 CS&#xff1a;载波侦听/监听&#xff0c;每一个站在发送数据…

CSMACD协议与CSMACA协议

CSMA/CD协议 全称&#xff1a;载波监听多点接入/碰撞检测CSMA/CD&#xff08;carrier sense multiple access with collision detection&#xff09; CS&#xff1a;载波侦听/监听&#xff0c;每一个站在发送数据之前要检测一下总线是否有其他计算机在发送数据。 MA&#xff1…

深度解读华为5G空口新技术:F-OFDM和SCMA

长江后浪推前浪&#xff0c;4G建设方兴未艾&#xff0c;业界关于5G的讨论已如火如荼。对于每一代移动通信&#xff0c;空口技术都相当于王冠上的明珠。 本文引用地址&#xff1a; http://www.eepw.com.cn/article/271583.htm 在月初的世界移动通信大会上&#xff0c;华为发布了…

基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用MPA算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 构造的核心是通过信道极化&#xff08;channel polarization&#xff09;处理&#xff0c;在编码侧采用方法使各个子信道呈现出不同的可靠性&#xff0c;当码长持续增加时&#xff0c;部分信道将…

OTFS-SCMA学习笔记

参考资料&#xff1a;OTFS-SCMA: A Downlink NOMA Scheme for Massive Connectivity in High Mobility Channels OTFS系统流程 X [ m , n ] X[m,n] X[m,n]是DD时延多普勒域 Γ { ( m M Δ f , n N T ) , m 0 , … , M − 1 , n 0 , … , N − 1 } \Gamma\left\{\left(\frac…

【通信】基于Matlab模拟SCMA系统时延调度算法

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 ⛄ 内容介绍 稀疏码多址接入(Sparse Code Multiple …

SCMA基本原理介绍

SCMA: Sparse Code Multiple Access SCMA基本原理 我们考虑一个同步&#xff08;synchronous&#xff09;的SCMA系统&#xff0c; 含1个基站&#xff08;Base Station, BS&#xff09;&#xff1b; J J J个用户&#xff08;so called layers&#xff09;&#xff1b;K个OFDM…

面向5G移动通信的新型多址接入技术-SCMA

从移动通信发展历程来看&#xff0c;通信几乎每隔十年就会换代升级&#xff0c;从80年代的1G通信主要是以语音为主&#xff0c;调制方式是FDMA&#xff1b;90年代2G通信发展了短信传输&#xff0c;调制方式有CDMA,TDMA等&#xff1b;2000年前后3G通信出现&#xff0c;传输速率加…

使用JMeter进行压力测试

1. 引言 在日常开发中&#xff0c;当完成一个接口开发时&#xff0c;需要对接口进行准确性测试&#xff0c;比如PostMan、Swagger等&#xff0c;但在接口上线运行前对其进行性能测试是很有必要的&#xff0c;就是所谓的接口压力测试。 压力测试就是考察当前软硬件环境下系统所…

JMeter进行API服务的压力测试

文章目录 前言一、准备工作1.安装jmeter2.安装java环境 二、JMeter使用样例1.运行JMeter2.创建调用流程1.背景阐述&#xff1a;2.JMeter模拟调用1.添加线程组&#xff1a;2.请求设置3.创建请求流程4.响应时长展示5.监控服务器CPU&#xff0c;MEM&#xff0c;I/O等 前言 本文用…

使用jmeter进行http压力测试(适合小白观看)

今天2019年2月4日&#xff0c;除夕贴完对联等着过大年了&#xff01; 今天来更新一篇博客&#xff0c;关于如何使用 jmeter 对web 进行压力测试&#xff0c;由于我的个人电脑是 deepin(Linux) 操作系统&#xff0c;因此这里就在Linux环境下演示&#xff0c;其实 Linux 演示和 w…

压力测试-Jmeter

我们在开发的过程中&#xff0c;如果遇到系统预估访问量会比较大的时候&#xff0c;或者我们再做底层基础服务的时候&#xff0c;往往需要对我们的服务性能做一些压力测试和稳定性测试&#xff0c;市面上有很多压测工具&#xff0c;今天我们主要讲解的是Jmeter压力测试工具&…

软件jmeter压力测试实例,jmeter压力测试案例实战

1、 测试目标地址:http://www.cnblogs.com/ 2、 1秒内有100个用户同时访问,看性能如何 3、 步骤 线程组、http请求、查看结果树、聚合报告 添加http请求如下: 继续填入参数格式: 服务器或名称IP:www.cnblogs.com 端口号:80 Connect:1000 Response:1000 添加查看结…

Jmeter负载和压力测试

负载和压力的区别: 负载测试:在一定的工作负荷下,给系统造成du的负zhi荷及系统响应的时间。 压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。 TPS和QPS的区别: tps可以理解为是每秒对事务的处理的能力 qps是每秒对服务器的查询能力 性能测试w…