Dubbo常见面试题

一、 Dubbo是在什么样的环境下产生的?

    答: 

      随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,就诞生了面向服务的架构体系(SOA)。

      也因此衍生出了一系列的面向服务治理的技术:  服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo就是在这样的环境下产生的。

 

二、Dubbo的整体架构有哪些分层? 

  1.       接口服务层(Service):该层与业务逻辑相关,根据provider和consumer的业务设计对应的接口和实现
  2.       配置层(Config)对外配置接口,以ServiceConfig和ReferenceConfig为中心
  3.       服务代理层(Proxy)服务接口透明代理,生成服务的客户端Stub和服务端的Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory
  4.       服务注册层(Registry)封装服务地址的注册和发现,以服务URL为中心,扩展接口为RegistryFactory、Registry、RegistryService
  5.        路由层(Cluster)封装多个提供者的路由和负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster、Directory、Router和LoadBlancce
  6.       监控层(Monitor)RPC调用次数和调用时间监控,以Statistics为中心,扩展接口为MonitorFactory、Monitor和MonitorService
  7.       远程调用层(Protocal):封装RPC调用,以Invocation和Result为中心,扩展接口为Protocal、Invoker和Exporter 
  8.       信息交换层(Exchange):封装请求响应模式,同步转异步。以Request和Response为中心,扩展接口为Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer
  9.      网络传输层(Transport)抽象mina和netty为统一接口,以Message为中心,扩展接口为Channel、Transporter、Client、Server和Codec
  10.     数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、ObjectInput、ObjectOutput和ThreadPool

 

三、Dubbo的服务发现与注册图? 

Dubbo常见面试题