【金三银四】Dubbo面试题(2021最新版)

本文详细梳理了Dubbo面试的各个关键知识点,包括基础知识、架构设计、分布式框架、注册中心、集群、配置、通信协议、设计模式、运维管理和RPC原理。通过分析Dubbo的核心功能、组件、服务注册与发现流程,以及与其他框架的关系,如Spring Cloud和Dubbox,帮助读者全面理解Dubbo在实际应用中的角色和重要性。此外,还讨论了服务降级、监控、负载均衡策略和超时处理等运维问题,以及Dubbo的SPI机制与Java SPI的区别。文章适合准备面试和深入研究Dubbo的开发者参考。
摘要由CSDN通过智能技术生成

目录

前言

一、基础知识

1. 为什么要用 Dubbo?

2. Dubbo 是什么?

3. Dubbo 的使用场景有哪些?

4. Dubbo 核心功能有哪些?

5. Dubbo 核心组件有哪些?

6. Dubbo 服务器注册与发现的流程?

二、架构设计

7. Dubbo 的整体架构设计有哪些分层?

8. Dubbo Monitor 实现原理?

三、分布式框架

9. Dubbo 类似的分布式框架还有哪些?

10. Dubbo 和 Spring Cloud 有什么关系?

12. Dubbo 和 Dubbox 之间的区别?

四、注册中心

13. Dubbo 有哪些注册中心?

14. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?

五、集群

15. Dubbo集群提供了哪些负载均衡策略?

16. Dubbo的集群容错方案有哪些?

六、配置

17. Dubbo 配置文件是如何加载到 Spring 中的?

18. 说说核心的配置有哪些?

19. Dubbo 超时设置有哪些方式?

20. 服务调用超时会怎么样?

七、通信协议

21. Dubbo 使用的是什么通信框架?

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

八、设计模式

23. Dubbo 用到哪些设计模式?

九、运维管理

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

25. Dubbo telnet 命令能做什么?

26. Dubbo 支持服务降级吗?

27. Dubbo 如何优雅停机?

十、SPI

28. Dubbo SPI 和 Java SPI 区别?

十一、其他

29. Dubbo 支持分布式事务吗?

30. Dubbo 可以对结果进行缓存吗?

31. Dubbo 必须依赖的包有哪些?

32. Dubbo 支持哪些序列化方式?

33. Dubbo 在安全方面有哪些措施?

34. 服务调用是阻塞的吗?

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

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

37. Dubbo 服务降级,失败重试怎么做?

38.Dubbo 使用过程中都遇到了些什么问题?

十二、RPC

39. 为什么要有RPC

40. 什么是RPC

41. PRC架构组件

42. RPC和SOA、SOAP、REST的区别

43. RPC框架需要解决的问题?

44. RPC的实现基础?

45. RPC使用了哪些关键技术?

46. 主流RPC框架有哪些

47. RPC的实现原理架构图

最后


前言

在面试中,Dubbo 这个 RPC 框架的代表作一直是热点,而且面试官也会根据经验从各种角度提问,并且像剥洋葱一样层层深入底层原理,因此单纯看看常规的面试题是远远不足的,最好还是能够自己深入阅读源码。另一方面,程序猿在平时的工作中又很少接触到源码,而且自己硬啃源码也是困难重重。

小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】

完整版Java面试题地址:2021最新面试题合集集锦

序号 专题 内容 链接地址
1 中间件 【金三银四】Java中间件面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/114002362
2 微服务 【金三银四】Java微服务面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/113923549
3 并发编程 【金三银四】Java并发编程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/113895576
4  Java基础 【金三银四】Java基础知识面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115146056
5 Spring Boot 【金三银四】Spring Boot面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115186811
6  Redis 【金三银四】Redis面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115188010
7  Spring MVC 【金三银四】Spring MVC面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115220638
8 Spring Cloud 【金三银四】Spring Cloud面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115220987
9 MySQL优化 【金三银四】MySQL优化面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115254620
10 JVM 【金三银四】JVM性能调优面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115283079
11 Linux 【金三银四】Linux面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115283583
12 Mybatis 【金三银四】Mybatis面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115285732
13 网络编程 【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115464896
14 设计模式 【金三银四】设计模式面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115466449
15 大数据 金三银四】大数据面试题100道(2021最新版) https://blog.csdn.net/SQY0809/article/details/115484939
16 Tomcat 【金三银四】Tomcat面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115486648
17 多线程 【金三银四】多线程面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115487212
18 Nginx 【金三银四】Nginx_BIO_NIO_AIO面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115488446
19 memcache 【金三银四】memcache面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115494213
20 java异常 【金三银四】java异常面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115530401
21 Java虚拟机 【金三银四】Java虚拟机面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115532365
22 Java集合 【金三银四】Java集合面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115599284
23 Git常用命令 【金三银四】Git常用命令(2021最新版) https://blog.csdn.net/SQY0809/article/details/115602390
24 Elasticsearch 【金三银四】Elasticsearch面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115604293
25 Dubbo 【金三银四】Dubbo面试题(2021最新版) https://blog.csdn.net/SQY0809/article/details/115605560

一、基础知识

1. 为什么要用 Dubbo?

随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。

2. Dubbo 是什么?

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

3. Dubbo 的使用场景有哪些?

  • 透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
  • 软负载均衡及容错机制:可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。
  • 服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP址,并且能够平滑添加或删除服务提供者。

4. Dubbo 核心功能有哪些?

  • Remoting:网络通信框架,提供对多种NIO框架抽象封装,包括同步转异步请求-响应模式的信息交换方式。Cluster:服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • Registry:服务注册,基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

5. Dubbo 核心组件有哪些?

  • Provider:暴露服务的服务提供方
  • Consumer:调用远程服务消费方
  • Registry:服务注册与发现注册中心
  • Monitor:监控中心和访问调用统计
  • Container:服务运行容器

6. Dubbo 服务器注册与发现的流程?

  • 服务容器Container负责启动,加载,运行服务提供者。
  • 服务提供者Provider在启动时,向注册中心注册自己提供的服务。
  • 服务消费者Consumer在启动时,向注册中心订阅自己所需的服务。
  • 注册中心Registry返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者Consumer,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者Consumer和提供者Provider,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心Monitor

二、架构设计

7. Dubbo 的整体架构设计有哪些分层?

  • 接口服务层(Service):该层与业务逻辑相关,根据 provider consumer 的业务设计对应的接口和实现
  • 配置层(Confifig):对外配置接口,以 ServiceConfifig ReferenceConfifig 为中心
  • 服务代理层(Proxy):服务接口透明代理,生成服务的客户端 Stub 和 服务端的 Skeleton,以
  • ServiceProxy 为中心,扩展接口为 ProxyFactory
  • 服务注册层(Registry):封装服务地址的注册和发现,以服务 URL 为中心,扩展接口为
  • RegistryFactoryRegistryRegistryService
  • 路由层(Cluster):封装多个提供者的路由和负载均衡,并桥接注册中心,以Invoker 为中心,扩展接口为 ClusterDirectoryRouter LoadBlancce
  • 监控层(Monitor):RPC 调用次数和调用时间监控,以 Statistics 为中心,扩展接口为MonitorFactoryMonitor MonitorService
  • 远程调用层(Protocal):封装 RPC 调用,以 Invocation Result 为中心,扩展接口为ProtocalInvoker Exporter
  • 信息交换层(Exchange):封装请求响应模式,同步转异步。以 Request Response 为中心,
  • 扩展接口为 ExchangerExchangeChannelExchangeClient ExchangeServer
  • 网络 传输 层(Transport
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值