后端经典面试题合集, Dubbo 是什么?是否了解过它的架构设计?
后端经典面试题合集, Dubbo 是什么?是否了解过它的架构设计?
QA
Step 1
Q:: Dubbo 是什么?
A:: Dubbo 是阿里巴巴开源的一款分布式服务框架,提供高性能的 RPC(远程过程调用)功能和微服务解决方案。它旨在通过提供透明的 RPC、自动服务注册和发现、负载均衡、容错、以及流量控制等功能来简化分布式应用的开发。
Step 2
Q:: Dubbo 的架构设计是什么?
A:: Dubbo 的架构主要分为三部分:Provider(服务提供方)、Consumer(服务消费方)和 Registry(注册中心)。服务提供方通过注册中心发布服务,消费者通过注册中心发现服务并进行调用。Dubbo 的核心组件包括:
1.
Protocol:定义服务调用的方式,如 Dubbo 协议、HTTP 协议等。
2.
Registry:服务注册与发现的组件,如 Zookeeper。
3.
Cluster:负责负载均衡、容错和高可用性的组件。
4.
Monitor:提供服务的监控和统计。
5.
Transport:网络传输层,支持多种协议如 Netty。
6.
Container:服务的运行容器。
Step 3
Q:: 为什么使用 Dubbo 而不是其他 RPC 框架?
A:: Dubbo 的优势在于其灵活的架构设计、强大的服务治理能力(如负载均衡、熔断、降级)、扩展性以及与 Spring 框架的良好集成。与其他 RPC 框架相比,Dubbo 提供了更全面的服务治理和监控工具,这使其更适合大规模分布式系统和微服务架构。
Step 4
Q:: Dubbo 支持哪些协议?
A:: Dubbo 默认使用的是 Dubbo 协议,但它也支持其他多种协议,如 HTTP、REST、Thrift、Hessian、WebService 等。不同的协议适用于不同的场景:
-
Dubbo 协议:高性能、高吞吐量,适用于内部服务调用。
- HTTP/
REST:跨语言、跨平台,适用于开放 API。
-
Thrift:跨语言 RPC。
-
Hessian:二进制序列化,适用于轻量级远程服务。
Step 5
Q:: Dubbo 如何进行服务的负载均衡?
A:: Dubbo 提供了多种负载均衡策略,常见的包括:
1.
Random:随机选择一台服务提供者。
2.
RoundRobin:按照轮询的方式选择服务提供者。
3.
LeastActive:选择当前最少活跃请求的服务提供者。
4.
ConsistentHash:基于请求参数进行一致性哈希选择,确保相同参数的请求总是分发到同一台提供者。