最新整理的22道常见Dubbo面试题你全都会吗?

2019-12-28 15:25:39

你知道所有新组织的22种常见的杜博面吗?

我每天都分享java文章,程序员可以关注我的专栏。

有人带你去认识爪哇

序言:

春天尤里卡已经从开源变成了开源,卡尔正在崛起,杜博又开始更新了。目前,市场上仍有许多公司使用dubbo,我们也需要继续学习。我想和你分享22个杜博的答案。由于篇幅有限,本文中只有前12个答案。那些需要其他答案的人可以写信给我“杜博”。

什么是杜博

Dubbo是一个分布式框架,一个用于远程服务调用的分布式框架,其核心部分包括:

集群容错:基于接口方法提供透明的远程过程调用,包括多协议支持,以及集群支持,如软负载平衡、故障容错、地址路由、动态配置等。

电信:提供基于长连接的多个NIO框架的抽象封装,包括多线程模型、序列化和“请求-响应”模式下的信息交换。

自动发现(Automatic discovery):基于注册中心的目录服务,服务消费者可以动态检查提供商,地址是透明的,服务提供商可以平稳地增减机器。

杜博能做什么

透明的远程方法调用,就像本地方法一样,需要简单的配置,并且没有应用编程接口入侵。

软负载平衡和容错机制可以取代F5和内部网中的其他硬件负载平衡器,以降低成本和单点。

服务自动注册和发现,不再需要写服务提供商地址,注册中心根据接口名称查询服务提供商的IP地址,并可以顺利添加或删除服务提供商。

3.默认情况下使用什么通信框架,还有其他选择吗?

答:默认情况下也推荐netty framework和mina。

4.杜博总的建筑设计有哪些层次?

接口服务层:该层与业务逻辑相关,根据供应商和客户的业务设计相应的接口和实现

配置层(Config):外部配置接口,以服务配置和参考配置为中心。

服务代理层:服务接口的透明代理,生成服务的客户端存根和服务器的骨架,以服务代理为中心,将接口扩展为代理工厂

服务注册层(注册表):封装服务地址的注册和发现,以服务网址为中心,并将接口扩展到注册表工厂、注册表、注册表服务

路由层(Cluster):封装多个提供商的路由和负载平衡,桥接注册中心,以Invoker为中心,并将接口扩展到集群、目录、路由器和负载平衡中心

监视器):监控RPC调用时间和调用时间,以统计为中心,扩展接口为监视器工厂、监视器和监视器服务

远程调用层(协议):封装RPC调用,以调用和结果为中心,扩展接口是协议、调用方和导出方

交换:封装请求响应模式,同步到异步。扩展接口以请求和响应为中心,分别是交换机、交换通道、交换客户端和交换服务器。

网络传输层:抽象mina和netty是统一的接口,消息是中心,扩展接口是通道、传输器、客户端、服务器和编解码器。

数据序列化层:具有序列化、对象输出、对象输出和线程池扩展的可重用工具

5.服务呼叫被阻止了吗?

答:默认情况下,它被阻止,可以异步调用。如果没有返回值,这是可以做到的。

Dubbo是一个基于NIO的并行调用的非阻塞实现。客户端可以完成对多个远程服务的并行调用,而无需启动多线程。与多线程相比,开销相对较小,异步调用将返回一个Future对象。

6.你通常使用哪种注册中心?还有其他选择吗?

答:推荐动物园管理员注册中心、组播注册中心、再分发注册中心和简单注册中心。

动物园管理员(ZooKeeper)的节点是通过树状结构维护的,每个节点都通过一条路径进行标记和访问。

此外,每个节点都有自己的信息,包括数据、数据长度、创建时间、修改时间等。

7.默认情况下,您使用什么序列化框架?您还知道什么?

答:默认情况下使用Hessian序列化,以及Duddo、FastJson和Java自己的序列化。黑森是以二进制形式传输的服务框架

2) hessian将辅助信息封装在http头中,例如“授权令牌”。我们可以基于http头封装“安全检查”和“元数据”。黑森提供了一个简单的“检查”机制。

3)对于hessian的交互核心数据,如“被调用方法”和参数列表信息,将以字节流格式直接通过测试请求体发送。

4)黑森的服务器端响应数据将分别按字节流直接输出。

黑森的协议本身并不复杂,这里不再重复。所谓的协议是约束数据的格式。客户端根据协议将请求信息序列化为字节序列,并将其发送给服务器。服务器根据协议将数据反序列化为“对象”,然后执行该方法,根据协议将该方法的返回值再次序列化为字节流,并响应客户端。客户端根据协议将字节流反序列化为“对象”。

8.服务提供商能够实现失败启动的原则是什么?

答:服务失败引发了基于动物园管理员的临时节点原则。

9.为什么服务启动不影响旧版本?

答:多版本开发不会影响旧版本。向配置中添加版本以区分版本

10.如何解决服务呼叫链过长的问题?

答:分布式服务可以结合zipkin来实现。

11.核心配置是什么?

核心配置是:

1)dubb o :s service/

2)dub bo :参考/

3)dub bo :协议/

4) dubbo:registry/

5)dub bo :应用/

6) dubbo:provider/

7) dubbo:cumer/

8)dub bo :方法/

12.杜博推荐什么协议?

答:默认使用dubbo协议。

13.当进行多次注册时,同一服务可以直接连接到一个服务吗?

14.杜博是如何解决安全机制的?

15、集群容错怎么办?

16.你在使用过程中遇到了什么问题?如何解决它?

杜博和杜博有什么不同?

18.你知道其他分布式框架吗?

19.Dubbo支持哪些协议,应用场景,每个协议的优缺点?

21、如何解决服务呼叫超时问题

22.Dubbo服务已降级。如果失败并重试呢?

在此之后,我想重申,我欢迎爪哇的工程师和朋友私下给我写信,让我免费获得其余的答案。还有更多免费的Java架构学习材料,涵盖了互联网的各个方面。在此期间,我在各种产品和场景中遇到了各种问题。我希望我能帮助你拓展你的技术广度和知识。

记住你必须注意我。我会不时给你好处,包括整理脸、学习材料、源代码等等~

联系方式
ico04
联系人

李经理

ico01
电话

0531-88581615

ico06
手机

13864088976

ico05
QQ

185437481

ico03
邮箱

185437481@qq.com

ico02
地址

山东省济南市历城区大桥路西侧零点物流以北济南电子商务物流园2-312号