DUBBO 面试灵魂18问
一、Dubbo 是什么
dubbo 是一个分布式框架,是一个远程服务调用的分布式框架,其核心部分包含:
1)集群容错: 提供基于接口方法的透明远程过程调用,包含多协议支持,以及软负债均衡、失败容错、地址路由、动态配置等集群支持
2) 远程通讯:提供对多种基于长连接的NIO框架抽象封装、包括多线程模型、序列化、以及“请求-响应”模式的信息交换方式
3)自动发现:基于注册中心目录服务、使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑的增加或者减少机器
二、Dubbo能做什么
透明化的远程方法调用,只需简单的配置,没有任何API侵入
软负载均衡以及容错机制,可以在内容替代F5等硬件负载均衡器,减少单点、降低成本
服务的自动注册和发现,不再需要写死服务提供方地址、注册中心基于接口名查询服务提供者的IP 地址,并且能够平滑添加或者删除服务提供者。
三、Dubbo默认使用的是什么通信框架,还可以选择别的框架么?
默认使用netty通信框架,还可以选择mina
四、Dubbo 服务调用时阻塞的么?
Dubbo服务调用默认是阻塞的
五、Dubbo 使用哪些注册中心?
推荐使用zookeeper注册中心,也可以使用Redis注册中心、Multicast注册中心、Simple注册中心
六、Dubbo 默认使用什么序列化框架?
默认使用Hession序列化框架、Hession是一个采用二进制格式传输的服务框架,相对于传统的Soap webService 更轻便、更快速。
其他的序列化框架还有 Dubbo、FastJson 、java自带的序列化框架等
七、服务提供者能实现失效踢出是什么原理?
服务失效踢出是基于zookeeper的临时节点原理
八、服务上线如何才能不影响旧版本?
采用多版本开发,不影响旧版本。在配置中添加version来作为版本区分。
九、如何解决服务调用链过程的问题?
可以结合zipkin 实现分布式服务跟踪
十、Dubbo的核心配置有哪一些?
1)dubbo:service
2)dubbo:reference
3)dubbo:registry
4)dubbo:protocol
5)dubbo:application
6)dubbo:provider
7)dubbo:consumer
8)dubbo:method
十一、Dubbo推荐什么协议
默认使用dubbo协议
十二、同一个服务多个注册的情况下可以直接连某一个服务么?
可以直连,修改配置即可
十三、dubbo的安全机制?
dubbo通过token令牌防止用户绕过注册中心直连,然后在注册中心管理授权,dubbo提供了黑白名单,控制服务所允许的调用方
十四、dubbo的集群容错怎么做?
读操作建议使用Failover失败自动切换,默认重试两次其他服务器;写操作建议使用Failfast快速失败,发现一次调用失败就立即报错
十五、dubbo和dubbox之间的区别?
dubbox是当当网基于dubbo上做的一些扩展,如增加了 服务科restful调用,更新了开源组件等等。
十六、dubbo支持哪一些协议?
dubbo协议:单一长连接和NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远远大衣提供者,传输协议TCP,异步Hession序列化
rmi协议:基于JDK标准,传输和返回参数对象需要实现Serializable接口,使用java标准序列化机制,使用阻塞式短连接
webservice协议
Redis:基于redis实现的Rpc协议
十七、Dubbo集群的负载均衡有哪一些策略?
十八、如何处理服务调用超时?
dubbo在服务调用不成功,默认是会重试两次的。为了避免重复请求,对于核心的服务中心,应该去除dubbo的超时重试,合理的设置超时时间
DUBBO 面试灵魂18问的更多相关文章
- 死磕面试 - Dubbo基础知识37问(必须掌握)
作为一个JAVA工程师,出去项目拿20k薪资以上,dubbo绝对是面试必问的,即使你对dubbo在项目架构上的作用不了解,但dubbo的基础知识也必须掌握. 整理分享一些面试中常会被问到的dubbo基 ...
- [灵魂拷问]MySQL面试高频100问(工程师方向)
作者:呼延十 juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉 ...
- 应届生/社招面试最爱问的几道Java基础问题
本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错 ...
- 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ ...
- 面试一次问一次,HashMap是该拿下了(一)
文章目录 前言 一.HashMap类图 二.源码剖析 1. HashMap(jdk1.7版本) - 此篇详解 2. HashMap(jdk1.8版本) 3. ConcurrentHashMap ~~ ...
- JVM工作原理和特点(一些二逼的逼神面试官会问的问题)
作为一种阅读的方式了解下jvm的工作原理 ps:(一些二逼的逼神面试官会问的问题) JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完毕,通过以下4步来完毕JVM环境. ...
- 面试中常问的List去重问题,你都答对了吗?
面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固. 我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本 ...
- 电话面试总结(问的很细).md
String 和其他基本类型有什么区别 Tip 基本类型有几种 为什么要给String创建一个常量池而不给其他类创建常量池 常量池的定义是什么 垃圾回收机制是如何运行的 对新生代和老年代不同的处理机制 ...
- 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...
随机推荐
- Normally Distributed|
6.1Introducing Normally Distributed Variables Why the word “normal”? Because, in the last half of th ...
- QQ消息群发助手(超级简单)
大家好!我开发的小工具,效果见动图: 下载地址 QQ群发助手.rar 代码: def Login(): global Flag try: bot.Login(['-q',v1.get()]) tkin ...
- 数字签名和数字证书等openssl加密基本术语
openssl 算法基础 1.1 对称算法 : 密钥相同,加密解密使用同一密钥 1.2 摘要算法:无论用户输入的数据什么长度,输出的都是固定长度的密文:即信息摘要,可用于判断数据的完整性:目前常用的有 ...
- Spring-IOC(DI)的三种注入方式
spring为方便不同的需求,为我们提供了3中不同的注入方式分别是set.get方法注入,构造注入还有p命名空间注入,老规矩,直接上代码 首先创建实体类Student public class Stu ...
- Shell 快速入门(十八):特殊符号的使用
在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...
- [LC] 215. Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- SpringMVC源码剖析1——执行流程
SpringMVC源码剖析1——执行流程 00.SpringMVC执行流程file:///C:/Users/WANGGA~1/AppData/Local/Temp/enhtmlclip/Image.p ...
- JAVA的堆栈和内存、垃圾回收解说
1.有关java健壮性特点的真相 很多书上都说java健壮性的特点是因为java使用数组代替了c++的指针:c++最令人头痛的问题就是内存问题,java的健壮性使编程人员不用再考虑内存的问题:这种观点 ...
- Mac使用sublime text3的快捷键
符号说明⌘:command⌃:control⌥:option⇧:shift↩:enter⌫:delete 打开/关闭/前往⌘⇧N 打开一个新的sublime窗口⌘N 新建文件⌘⇧W 关闭sublime ...
- Python自动化之数据驱动(转载下自己的日常练习笔记)
一.execl数据驱动 1.xlutils简要说明 导包:pip3 install xlutils 注意⚠️:xlutils在介些Execl文件的时候,只识别.xls后缀的文件,如果是.xlsx后缀的 ...