Dubbo面试题详解
1.Dubbo是什么?
Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、 自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两个服务器交互数据。
2.Dubbo的由来?
互联网的快速发展,Web 应用程序的规模不断扩大,一般会经历如下四个发展 阶段。
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起即可。
垂直应用架构
当访问量逐渐增大,单一应用按照有业务线拆成多个应用,以提升效率。
此时,用于加速前端页面开发的 Web 框架(MVC) 是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独 立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场 需求。
此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增 加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
3.Dubbo的主要应用场景?
透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置, 没有任何 API 侵入。
软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少 单点。
服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查 询服务提供者的 IP 地址,并且能够平滑添加或删除服务提供者。
4.Dubbo的核心功能?
主要就是如下 3 个核心功能:
Remoting:网络通信框架,提供对多种NIO框架抽象封装,包括“同 步转异步”和“请求-响应”模式的信息交换方式。
Cluster:服务框架,提供基于接口方法的透明远程过程调用,包括多 协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 Registry:服务注册,基于注册中心目录服务,使服务消费方能动态的 查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。
5.Dubbo的核心组件?
6.Dubbo服务注册与发现的流程?