专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 15道Java Dubbo面试题(附答案)

15道Java Dubbo面试题(附答案)

更新时间:2020-10-28 17:05:18 来源:赢咖4 浏览1074次

框架一直都是学习java的重点内容,Dubbo是一个分布式服务框架,是阿里巴巴开源的基于java的高性能RPC分布式服务框架,在java面试中会有很大的几率考察到Dubbo,今天这里整理了15道常考的java Dubbo面试题,方便有求职就业的人学习,也供各位java程序员复习回顾。

image.png

1、Dubbo中有哪些角色?

答:(1)registry注册中心,是用于发布和订阅服务的一个平台,用于替代SOA结构体系框架中的ESB服务总线的;(2)发布,开发服务端代码完毕后, 将服务信息发布出去,实现一个服务的公开;(3)订阅,客户端程序,从注册中心下载服务内容 这个过程是订阅,订阅服务的时候, 会将发布的服务所有信息,一次性下载到客户端,客户端也可以自定义, 修改部分服务配置信息. 如: 超时的时长, 调用的重试次数等;(4)Consumer,服务的消费者, 就是服务的客户端,消费者必须使用Dubbo技术开发部分代码, 基本上都是配置文件定;(5)provider,服务的提供者, 就是服务端,服务端必须使用Dubbo技术开发部分代码,以配置文件为主;(6)container,容器. Dubbo技术的服务端(Provider), 在启动执行的时候, 必须依赖容器才能正常启动,默认依赖的就是spring容器. 且Dubbo技术不能脱离spring框架;(7)monitor监控中心,是Dubbo提供的一个jar工程,主要功能是监控服务端(Provider)和消费端(Consumer)的使用数据的. 如: 服务端是什么,有多少接口,多少方法, 调用次数, 压力信息等. 客户端有多少, 调用过哪些服务端, 调用了多少次等。


2、Dubbo的连接方式有哪些?

答:Dubbo的客户端和服务端有三种连接方式,分别是:广播,直连和使用zookeeper注册中心。


3、Dubbo广播是什么?

答:这种方式是dubbo官方入门程序所使用的连接方式,但是这种方式有很多问题。在企业开发中,不使用广播的方式。taotao-manager服务端配置:

image.png


4、使用dubbo遇到过哪些问题?

答:增加提供服务版本号和消费服务版本号。这个具体来说不算是一个问题,而是一种问题的解决方案,在我们的实际工作中会面临各种环境资源短缺的问题,也是很实际的问题,刚开始我们还可以提供一个服务进行相关的开发和测试,但是当有多个环境多个版本,多个任务的时候就不满足我们的需求,这时候我们可以通过给提供方增加版本的方式来区分.这样能够剩下很多的物理资源,同时为今后更换接口定义发布在线时,可不停机发布,使用版本号.引用只会找相应版本的服务,例如:

image.png


5、默认使用的是什么通信框架,还有别的选择吗?

答:默认也推荐使用 netty 框架,还有 mina。


6、服务调用是阻塞的吗?

答:默认是阻塞的,可以异步调用,没有返回值的可以这么做。Dubbo 是基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小,异步调用会返回一个 Future 对象。


7、一般使用什么注册中心?还有别的选择吗?

答:推荐使用 Zookeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐。


8、Session的load和get方法的区别是什么?

答:主要有以下三项区别:(1)如果没有找到符合条件的记录, get方法返回null,load方法抛出异常;(2)get方法直接返回实体类对象, load方法返回实体类对象的代理;(3)在Hibernate 3之前,get方法只在一级缓存(内部缓存)中进行数据查找, 如果没有找到对应的数据则越过二级缓存, 直接发出SQL语句完成数据读取; load方法则可以充分利用二级缓存中的现有数据;当然从Hibernate 3开始,get方法不再是对二级缓存只写不读,它也是可以访问二级缓存的。


9、Dubbo启动时如果依赖的服务不可用会怎样?

答:Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,默认 check="true",可以通过 check="false" 关闭检查。


10、服务上线怎么不影响旧版本?

答:采用多版本开发,不影响旧版本。


11、Dubbo类似的分布式框架还有哪些?

答:比较著名的就是Spring Cloud。


12、Dubbo和Spring Cloud有什么关系?

答:Dubbo是SOA时代的产物,它的关注点主要在于服务的调用,流量分发、流最监控和熔断。而Spring Cloud诞生于微服务架构时代,考虑的是微服务理的方方面面,另外由于依托了Spring. Spring Boot的优势之上,两个框架在开始目标就不一致, Dubbo 定位服务治理、Spring Cloud是打造一个生态。


13、为什么要用 Dubbo?

答:随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。


14、创建的临时节点什么时候会被删除,是连接一断就删除吗?延时是多少?

答:连接断了之后,ZK不会马上移除临时数据,只有当SESSIONEXPIRED之后,才会把这个会话建立的临时数据移除。因此,用户需要谨慎设置Session_TimeOut。


15、Dubbo在安全机制方面是如何解决的?

答:Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。


以上汇总整理的Java Dubbo面试题到这里就结束了,这15道 Dubbo面试题是java面试题中必学的内容。如果对以上内容掌握的还不是很全面,或者知识有所欠缺,可以通过Dubbo教程来学习更多关于Dubbo框架的特点,框架的组件等等的相关知识,帮助你更好的就业工作。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>