| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 面试官最常问的Dubbo分布式服务框架,每道题都很经典 -> 正文阅读 |
|
[网络协议]面试官最常问的Dubbo分布式服务框架,每道题都很经典 |
框架一直都是学习java的重点内容,Dubbo是一个分布式服务框架,是阿里巴巴开源的基于java的高性能RPC分布式服务框架,在java面试中会有很大的几率考察到Dubbo,今天这里整理了15道常考的Dubbo面试题,方便有求职就业的人学习,也供各位复习回顾。 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服务端配置: 4、使用dubbo遇到过哪些问题?答:增加提供服务版本号和消费服务版本号。这个具体来说不算是一个问题,而是一种问题的解决方案,在我们的实际工作中会面临各种环境资源短缺的问题,也是很实际的问题,刚开始我们还可以提供一个服务进行相关的开发和测试,但是当有多个环境多个版本,多个任务的时候就不满足我们的需求,这时候我们可以通过给提供方增加版本的方式来区分.这样能够剩下很多的物理资源,同时为今后更换接口定义发布在线时,可不停机发布,使用版本号.引用只会找相应版本的服务,例如: 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还提供服务黑白名单,来控制服务所允许的调用方。 以上汇总整理的Dubbo面试题到这里就结束了,这15道 Dubbo面试题是必学的内容。如果对以上内容掌握的还不是很全面,或者知识有所欠缺,可以跟着动力节点的Dubbo视频教程来学习更多关于Dubbo框架的特点,框架的组件等等的相关知识。 Dubbo视频教程:
Dubbo全套资料下载
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:24:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |