题目
- 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 注册中心。
-
回答:
-
见分析。
题目十
- 题干:Dubbo有哪几种配置方式?
- 分析:
-
四种方式:XML配置、属性配置、注解配置、API配置
参考Dubbo官网配置部分 - 回答:
-