每天十道面试题-20200410

题目
  • 1、Dubbo是什么?
  • 2、为什么要用Dubbo?
  • 3、Dubbo 和 Spring Cloud 有什么区别?
  • 4、Dubbo都支持什么协议,推荐用哪种?
  • 5、Dubbo需要 Web 容器吗?
  • 6、Dubbo内置了哪几种服务容器?
  • 7、Dubbo里面有哪几种节点角色?
  • 8、画一画服务注册与发现的流程图
  • 9、Dubbo默认使用什么注册中心,还有别的选择吗?
  • 10、Dubbo有哪几种配置方式?
解答
题目一
  • 题干:Dubbo是什么?
  • 分析:
  • Dubbo是一款分布式RPC框架,提供了诸如:服务注册与发现、服务治理、服务调度监控等功能。
    从单一应用架构【ORM】到垂直应用架构【MVC】到分布式服务架构【RPC】再到流动计算架构【SOA】整个演化过程,当服务不算很多的时候,只需要进行服务拆分,然后通过RPC调用来达到系统功能,然后随着服务继续增大,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大,就需要有更加具体的服务注册发现功能,随着服务继续增多,各个服务之间的调用逻辑变的错综复杂,所以就需要进行服务治理,在随着服务继续增多,有些服务节点的状况或者服务器使用情况都需要进行更细化的监控,所以就相应的功能模块出现。而Dubbo就是提供这一系列功能的框架。详细可见Dubbo官方文档需求部分

  • 回答:
  • 见分析。

题目二
  • 题干:为什么要用Dubbo?
  • 分析:
  • 这个想问的不是各种RPC框架中间的孰优孰劣,而是从服务迭代过程中从单体到微服务,这个过程中为什么要引入Dubbo,这里可以参考一下题目一 。从单体架构拆分后,根据业务或者功能拆分,我们可以通过http调用来满足这个诉求,但是由于之前的http协议并不能很好的适用于服务之间的调用,所以出现了一些RPC用到的协议,而对于一个RPC框架来讲并不是单纯的提供PRC调用功能即可,对于服务注册发现,服务降级、负载均衡等都有相关实现,这点我们在Dubbo和SpringCloud中都可以看到。

  • 回答:
  • 见分析。

题目三
  • 题干:Dubbo 和 Spring Cloud 有什么区别?
  • 分析:
  • 之前的Dubbo并没有实现具体的服务注册中心,而是依托于如ZK、Redis等来实现现在也可以搭配Nacos来使用通过dubbo-registry-nacos来完成,而对于SC来讲,本身自带了Eureka专职与服务注册与发现。但是由于Eureka开发的问题以及Eureka本身的一些问题,现在也可以使用如Consul 、或者阿里的Nacos。再就是SC的功能虽多但是有些并不是很好,我们都可以自行替代。而Dubbo在某些部分是存在空缺的。

  • 回答:
  • 见分析 。

题目四
题目五
  • 题干:Dubbo需要 Web 容器吗?
  • 分析:
  • 不需要,因为首先Dubbo是一款RPC框架,最基本的需要有服务注册与发现,而者并不依赖于web容器,在Dubbo对于容器的SPI扩展中我们可以发现:
    org.apache.dubbo.container.spring.SpringContainer
    org.apache.dubbo.container.spring.JettyContainer
    org.apache.dubbo.container.spring.Log4jContainer

    启动容器的时候我们可以选:spring、javaconfig、jetty、log4j、logback等参数
    而对于Dubbo容器默认的容器是Spring这个有在源码中体现。

  • 回答:
  • 见分析。

题目六
  • 题干:Dubbo内置了哪几种服务容器?
  • 分析:
  • 在Dubbo对于容器的SPI扩展中我们可以发现:
    spring=org.apache.dubbo.container.spring.SpringContainer
    log4j=org.apache.dubbo.container.log4j.Log4jContainer
    logback=org.apache.dubbo.container.logback.LogbackContainer

    启动容器的时候我们可以选:spring、javaconfig、log4j、logback等参数

  • 回答:
  • 见分析。

题目七
  • 题干:Dubbo里面有哪几种节点角色?

  • 分析:

  • 角色说明:
    Provider : 暴露服务的服务提供方
    Consumer : 调用远程服务的服务消费方
    Registry : 服务注册与发现的注册中心
    Monitor : 统计服务的调用次数和调用时间的监控中心
    Container : 服务运行容器
    参考我这篇文章

  • 回答:

  • 参考我这篇文章

题目八
题目九
  • 题干:Dubbo默认使用什么注册中心,还有别的选择吗?

  • 分析:

  • 现在推荐使用Nacos,之前使用的是zk,此外redis、Multicast 注册中心、Simple 注册中心。

  • 回答:

  • 见分析。

题目十
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值