史上最全40道Dubbo面试题及答案

article/2025/9/24 3:29:13

image.png
其实关于Dubbo的面试题,我觉得最好的文档应该还是官网,因为官网有中文版,照顾了很多阅读英文文档吃力的小伙伴。但是官网内容挺多的,于是这里就结合官网和平时面试被问的相对较多的题目整理了一下。

1,说说一次Dubbo服务请求流程?
基本工作流程:
image.png
image.png
2,说说Dubbo工作原理
工作原理分10层:

第一层:service层,接口层,给服务提供者和消费者来实现的(留给开发人员来实现)第二层:config层,配置层,主要是对Dubbo进行各种配置的,Dubbo相关配置第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton,调用的是接口,实现类没有,所以得生成代理,代理之间再进行网络通讯、负责均衡等。第四层:registry层,服务注册层,负责服务的注册与发现第五层:cluster层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务第六层:monitor层,监控层,对rpc接口的调用次数和调用时间进行监控第七层:protocol层,远程调用层,封装rpc调用第八层:exchange层,信息交换层,封装请求响应模式,同步转异步第九层:transport层,网络传输层,抽象mina和netty为统一接口第十层:serialize层,数据序列化层

这是个很坑爹的面试题,但是很多面试官有喜欢问,你真的要背么?你能背那还是不错的,我建议不要背,你就想想Dubbo服务调用过程中应该会涉及到哪些技术,把这些技术穿起来就OK了。

面试扩散

如果让你设计一个RPC框架,你会怎么做?其实你就把上面这个工作原理中涉及的到技术点总结一下就行了。

3,Dubbo支持哪些协议?
image.png

还有三种就混个眼熟就行memcached协议、redis协议、rest协议。

上图中基本上把序列化的方式也罗列出来了。

详细请参考:Dubbo官网

4,注册中心挂了,consumer还能不能调用provider
可以,因为刚开始初始化的时候,consumer会将需要的所有提供者的地址等信息拉取到本地缓存,所以注册中心挂了可以继续通信。但是provider挂了,那就没法调用了。

image.png

关键字:consumer本地缓存服务列表

5,怎么实现动态感知服务下线的呢?
image.png

服务订阅通常有 pull 和 push 两种方式:

pull 模式需要客户端定时向注册中心拉取配置;

push 模式采用注册中心主动推送数据给客户端;

DubboZookeeper注册中心采用是事件通知与客户端拉取方式。服务第一次订阅的时候将会拉取对应目录下全量数据,然后在订阅的节点注册一个 watcher。一旦目录节点下发生任何数据变化,Zookeeper将会通过 watcher 通知客户端。客户端接到通知,将会重新拉取该目录下全量数据,并重新注册 watcher。利用这个模式,Dubbo服务就可以就做到服务的动态发现。

注意:Zookeeper提供了“心跳检测”功能,它会定时向各个服务提供者发送一个请求(实际上建立的是一个 socket 长连接),如果长期没有响应,服务中心就认为该服务提供者已经“挂了”,并将其剔除。

6,Dubbo负载均衡策略?
随机(默认)- 随机来

轮训 -  一个一个来

活跃度-  机器活跃度来负载

一致性hash - 落到同一台机器上

7,Dubbo容错策略
failover cluster模式

provider 宕机重试以后,请求会分到其他的provider上,默认两次,可以手动设置重试次数,建议把写操作重试次数设置成0。

failback模式

失败自动恢复会在调用失败后,返回一个空结果给服务消费者。并通过定时任务对失败的调用进行重试,适合执行消息通知等操作。

failfast cluster模式

快速失败只会进行一次调用,失败后立即抛出异常。适用于幂等操作,写操作,类似于failover cluster模式中重试次数设置为0的情况。

failsafe cluster模式

失败安全是指,当调用过程中出现异常时,仅会打印异常,而不会抛出异常。适用于写入审计日志等操作。

forking cluster模式

并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=“2” 来设置最大并行数。

broadcacst cluster模式

广播调用所有提供者,逐个调用,任意一台报错则报错。通常用于通知所有提供者更新缓存或日志等本地资源信息。

8,Dubbo动态代理策略有哪些?
默认使用javassist动态字节码生成,创建代理类,但是可以通过SPI扩展机制配置自己的动态代理策略

9,说说Dubbo与Spring Cloud的区别?
这是很多面试官喜欢问的话题,本人认为其实他们没什么关联之处,但是硬是要问区别,那就说说吧;

回答的时候主要围绕着四个来说:通信方式、注册中心、监控、断路器,其余像Spring分布式配置、服务网关肯定得知道。

通信方式

Dubbo使用的是RPC通信,Spring Cloud使用的是HTTP RestFul方式

注册中心

Dubbo使用Zookeeper(官方推荐),还有Redis、Multicast、Simple注册中心,但不推荐,

Spring Cloud使用的是Spring Cloud Netflix Eureka

监控

Dubbo使用的是Dubbo-monitor,Spring Cloud使用的是Spring Boot admin

断路器

Dubbo在断路器这方面还不完善,Spring Cloud使用的是Spring Cloud Netflix Hystrix

分布式配置、网关服务、服务跟踪、消息总线、批量任务等

Dubbo目前可以说还是空白,而Spring Cloud 都有相应的组件来支撑。


http://chatgpt.dhexx.cn/article/8oKaaFlH.shtml

相关文章

2020 Dubbo面试题大全

Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到…

史上最全 40 道 Dubbo 面试题及答案

前言 Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人…

Dubbo面试题

java基础-1 java基础-2 Dubbo面试题 springboot面试题 SQL常见的面试题 Linux常见的面试题 1、Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。 dubbo是一个分布式框架&#xff0c…

Dubbo常见面试题

关注Java后端技术栈“ 回复“面试”获取最新资料 其实关于Dubbo的面试题,我觉得最好的文档应该还是官网,因为官网有中文版,照顾了很多阅读英文文档吃力的小伙伴。但是官网内容挺多的,于是这里就结合官网和平时面试被问的相对较多的…

Dubbo面试题汇总【40题】

1、Dubbo 是什么? 2、为什么要用Dubbo? 3、Dubbo 和 Spring Cloud 有什么区别? 4、dubbo 都支持什么协议,推荐用哪种? 5、Dubbo 需要 Web 容器吗? 6、Dubbo 内置了哪几种服务容器? 7、Dub…

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

Dubbo面试题及答案【最新版】Dubbo面试题大全(2021版),发现网上很多Dubbo面试题及答案整理都没有答案,所以花了很长时间搜集,本套Dubbo面试题大全 如果不背 Dubbo面试题的答案,肯定面试会挂! 这套Dubbo面试题大全&…

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;传输速率加…