写点什么

Dubbo 面试题,mybatis 架构图

用户头像
极客good
关注
发布于: 刚刚

Channel 、 Transporter 、 Client 、 Server 和 Codec


数据序列化层( Serialize ): 可复用的一些工具,扩展接口为 Serialization 、 ObjectInput 、


ObjectOutput 和 ThreadPool

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

默认推荐使用 netty 框架,还有 mina

4、服务调用是阻塞吗?

默认是阻塞的,可以异步调用,没有返回值的可以这么做。


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

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

推荐使用 Zokkeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐使用

6、默认使用什么序列化框架,你知道的还有哪些?

推荐使用 Hessian 序列化,还有 Dubbo、FastJson、Java 自带序列化。

7、服务提供者能实现失效踢出是什么原理?

服务失效踢出基于 zookepper 的临时节点原理。

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

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

9、如何解决服务调用链过长的问题?

可以结合 zipkin 实现分布式服务追踪。

10、说说核心的配置有哪些?

11、Dubbo 推荐用什么协议?

?

12、同一个服务多个注册的情况下可以直连某一个服务吗?

可以点对点直连,修改配置即可,也可以通过 telnet 直接某个服务。

13、画一画服务注册与发现的流程图?

14、Dubbo 用到了那些设计模式?

工厂模式、装饰器模式、观察者模式、动态代理模式?

15、Dubbo 配置文件是如何加载到 Spring 中的?

Spring 容器在启动的时候,会读取到 Spring 默认的一些 schema(XML)以及


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


Dubbo 自定义的 schema(XML),每个 schema 都会对应一个自己的 NamespaceHandler,NamespaceHandler 里面通过 BeanDefinitionParser 来解析配置信息并转化为需要加载的 bean 对象。

16、Dubbo 可以对结果进行缓存吗?

为了提高数据访问的速度。DUbbo 提供了声明式缓存,以减少用户加缓存的工作量


<dubbo:reference cache="true" />


其实比普通的配置文件就多了一个标签 cache=“true”

17、服务上线怎么兼容旧版本?

可以用版本号(version)过渡,多个不同版本的服务注册到注册中心,版本号不同的服务相互间不引用。这个和服务分组的概念有一点类似。

18、Dubbo 必须依赖的包有哪些?

Dubbo 必须依赖 JDK,其他为可选。

19、Dubbo 支持服务降级吗?

以通过 dubbo:reference 中设置 mock=“return null”。mock 的值也可以修改成 true,然后在跟接口同一个路径下实现一个 Mock 类,命名规则是“接口名称+Mock”后缀。然后在 Mock 类里实现自己的降级逻辑。

20、Dubbo 和 Spring Could 的区别?

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Dubbo面试题,mybatis架构图