Java技术堆栈
优秀的Java技术官方帐户
如果您想去更高的地方,怎么能不懂Dubbo?
Dubbo是中国最著名的分布式服务框架,也是Java程序员的基本框架之一。 Dubbo是一种在中间和高级面试过程中经常询问的技术。无论您是否使用过它,都必须熟悉它。
下面我为您准备了一些常见的Dubbo面试问题。其中一些是我经常问其他问题的东西,有些是我过去采访中遇到的一些问题。我将为您总结它们。我希望他们会对您有所帮助。
1。什么是Dubbo?
Dubbo是阿里巴巴的开源Java的高性能RPC分布式服务框架,该框架现已成为Apache Foundation的一个孵化项目。
如果面试官问您是否不知道这一点,则无需询问以下一个。
官方网站:
2。为什么要使用Dubbo?
由于它是阿里巴巴的开源项目,因此许多国内互联网公司正在使用它,并经历了许多在线测试。 Netty和Zookeeper在内部用于确保高性能和高可用性。
使用Dubbo,可以提取核心服务并用作独立服务,以逐渐形成稳定的服务中心,该中心可用于改善业务重用和灵活的扩展,以便前端应用程序可以更快地响应不断变化的市场需求。
下图可以清楚地解释。最重要的一点是,分布式架构可以承受更大规模的并发流量。
以下是Dubbo的服务治理图表。
3。Dubbo和Spring Cloud有什么区别?
两者没有连接。如果您必须说区别,则有以下几点。
1)不同的通信方法
Dubbo使用RPC通信,而Spring Cloud则使用HTTP RESTFUL。
2)不同的组件
4. Dubbo支持哪个协议以及推荐哪个协议?
5。Dubbo需要Web容器吗?
不,如果您强迫使用Web容器,则只会增加复杂性和浪费资源。
6. Dubbo内置了哪些类型的服务容器?
Dubbo的服务容器只是一种简单的主方法,并加载了一个简单的弹簧容器,用于公开服务。
7. Dubbo中的节点角色是什么?
8.画出服务注册和发现流程图的图片
这张照片来自Dubbo的官方网站供您参考。如果您说自己熟悉Dubbo,面试官通常会要求您绘制这张照片并记住它。
9. Dubbo默认使用哪个注册中心?还有其他选择吗?
建议将Zookeeper作为注册中心以及Redis,多播和简单的注册中心,但不建议使用。
10。Dubbo的配置方法是什么?
1)春季配置方法
2)Java API配置方法
11. Dubbo的核心配置是什么?
我曾经遇到过一个面试官,要求您在面试中写下这些配置,我也感到困惑。 。
配置之间的关系如下图所示。
12。可以在提供商上配置的消费者端的属性是什么?
1)超时:方法呼叫超时
2)检索:重试时间失败的数量,默认重试2次
3)载荷:负载平衡算法,默认随机
4)活跃的消费者方,最大并发通话限制
13.如果Dubbo启动时依赖服务不可用,会发生什么?
Dubbo默认设置以检查依赖服务是否在启动时可用。如果不可用时,将抛出一个例外,以防止弹簧初始化完成。默认检查=“ true”可以通过check =“ false”检查。
14. Dubbo建议使用哪种序列化框架,您还知道什么?
建议使用Hessian序列化以及Duddo,FastJson和Java Native Serialization。
15. Dubbo默认使用什么通信框架?还有其他选择吗?
Dubbo默认情况下使用Netty框架,这也是推荐的选择。此外,该内容与Mina和Grizzly集成在一起。
16. Dubbo的群集容错解决方案是什么?它是哪个默认设置?
17. Dubbo拥有的负载平衡策略是什么?默认值是什么?
18.注册多个服务。如果您测试指定的服务怎么办?
您可以配置环境点对点直接连接,绕过注册表中心,并在服务接口中忽略注册表提供商列表。
19。Dubbo是否支持多协议服务?
Dubbo允许配置多个协议,支持不同服务上的不同协议或同时支持同一服务的多个协议。
20。当服务界面具有多个实现时,该怎么办?
当接口具有多个实现时,可以使用组属性对其进行分组,并且服务提供商和消费者都指定同一组。
21.启动服务时如何与旧版本兼容?
您可以使用要过渡的版本编号,并将多个不同版本的服务注册到注册中心,并且具有不同版本编号的服务不会相互引用。这与服务分组的概念有点相似。
22. Dubbo可以缓存结果吗?
是的,Dubbo提供声明的缓存,以加快对流行数据的访问,以减少用户的工作量以添加缓存。
23。在Dubbo服务阻塞之间是否呼叫?
默认情况下,通过同步等待结果来阻止它,并且支持异步调用。
Dubbo是基于NIO的并行调用的非阻滞实现。客户端无需启动多线程即可完成多个远程服务的并行调用。与多线程相比,开销很小,异步调用将返回将来的对象。
异步呼叫流程图如下。
24. Dubbo是否支持分布式交易?
如图所示,目前不支持它,并且将来可以根据JTA/XA规范实现。
25。Dubbo Telnet命令可以做什么?
Dubbo使用Telnet命令来管理服务。有关详细信息,请阅读本文“《”。
Telnet Localhost 8090
26。Dubbo支持服务是否降级?
支持Dubbo 2.2.0或以上。
27.如何优雅地阻止Dubbo?
Dubbo通过JDK的关闭方式优雅地关闭,因此,如果您使用强制关闭命令(例如Kill -9 PID),则不会执行优雅的关闭。仅当杀死PID通过时才会执行。
28.服务提供商能够实现失败的原则是什么?
服务故障启动了基于动物园管理员的临时节点原理。
29。如何解决太长的服务呼叫链的问题?
Dubbo可以使用Pinpoint和Apache Skywalking(孵化器)实现分布式服务跟踪,当然还有许多其他解决方案。
30。推荐用于服务阅读和写作的容忍策略是什么?
如果您未能阅读,建议使用故障转移自动切换。默认情况下,您可以两次尝试其他服务器。
建议使用Failfast快速失败。如果发送后通话失败后,将立即报告错误。
31. Dubbo必须依靠哪些包装?
Dubbo必须依靠JDK,其他是可选的。
32。Dubbo的管理控制台可以做什么?
管理控制台主要包括:路由规则,动态配置,降级,访问控制,调整权重调整,负载平衡和其他管理功能。
33。谈论Dubbo服务曝光的过程。
Spring实例化BEAN后更多公务员考试网题库就点击这里,Dubbo将通知ServiceBean类,该类实现ApplicationListener,以在contextrefreshevent事件发生在刷新容器的最后一步中,以调用onapplicationEvent事件方法。 Dubbo将在此方法中调用ServiceBean Parent类ServiceConfig的导出方法,该方法确实实现了服务的服务(异步或非及时性)版本。
34。Dubbo停止维护?
维护在2014年开始停止几年,重新维护于2017年,并进入了Apache项目。
35。Dubbo和Dubbox有什么区别?
DUBBOX是一个扩展项目,基于Dubbo停止后的Dubbo,例如将服务添加到RESTFUL,更新开源组件等。
36。您知道其他分布式框架吗?
其他包括Spring Cloud,Facebook的节俭,Twitter的Finagle等。
37。Dubbo可以整合Spring引导吗?
是的,项目地址如下。
38。使用期间您遇到了什么问题?
Dubbo旨在满足具有高并发和较小数据量的RPC呼叫。大数据量下的性能不好。建议使用RMI或HTTP协议。
39。您阅读了Dubbo的源代码吗?
要了解Dubbo,您必须阅读其源代码,了解其原理,并花一些时间阅读它。互联网上也有许多教程。如果将来有时间,我将在官方帐户上共享Dubbo的源代码。
40。您认为使用Dubbo或Spring Cloud更好吗?
没有好问题或坏问题,只有合适或不适合,但我似乎更喜欢使用Dubbo。 Spring Cloud版本的升级太快了,组件更新和替换过于频繁,配置太麻烦了,我认为Dubbo不容易使用很多东西...
暂时考虑到这些,我希望它们对每个人都会有所帮助。有关更多其他面试问题和答案,请回复背景中的关键字:面试。
本文是博客作者在国庆日做出的重大举动。请喜欢并转发。这是对博客作者的最大支持。
-
面试题及答案 深入解析Java线程Dump:DestroyJavaVM线 2024-12-16
-
2020最新Java面试题,常见面试题及答案汇总,主要是有 2024-04-03
-
中医的发展结构化面试题及答案.pdf 28页 2024-03-30
-
游戏测试面试题及答案 2024-03-03
-
管理人员面试题及答案 2024-03-03
-
经验分享:几个产品经理面试题及答案 2024-02-01
-
2023最全面试知识库,498道常见面试题及答案,助你备战金 2024-02-01
-
面试题及答案 互联网大厂各职级薪资对应表,看看你想到 2024-01-05