Dubbo知识点

dubbo知识点
1.Bubbo是什么?
Bubbo是阿里巴巴开源的基于java的高性能RPC分布式服务框架,现在已经成为Apache基金会孵化项目
2.为什么要使用dubbo?
因为开源,内部使用了Netty、Zookeeper,保证了性能的高可用性
使用dubbo可以将核心业务抽取出来,作为独立业务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展

 

 服务注册与发现流程图:

 

 


3.dubbo和SpringCloud的区别?
两者没有关联,如果非要说的话,有以下几点
1.通信方式不同:dubbo使用的时RPC通信,而SpringCloud使用的时是HTTP RESTFUL方式
2.组成部分不同
4.dubbo都支持什么协议,推荐使用哪种?
dubbo://(推荐);rmi://; http://; hessian://; WebService:// thrift://; memcached://; redis://; rest://
5.dubbo需要web容器吗?
不需要,强行使用web容器,只会增加复杂性,也会浪费资源
6.dubbo内置了哪几种服务容器?
Spring Container
Jetty Container
Log4j Container
dubbo的服务容器只是一个简单的Main方法,并加载一个简单的spring容器,用于暴露服务
7.dubbo里面有哪几种节点角色?
provider:暴露服务的服务提供方
consumer:远程调用服务的服务消费方
register:服务注册与发现的注册中心
monitor:统计服务的调用次数调用间的监控中心
container:服务运行容器
8.dubbo认使用Zookeeper注册中心
9.dubbo有哪几种配置方式?
1.spring配置方式
2.Java API配置方式
10.dubbo核心的配置有哪些?
dubbo:service-------->服务配置
dubbo:reference------->引用配置
dubbo:protocol------->协议配置
dubbo:application---->应用配置
dubbo:module-------->模块配置
dubbo:registry--------->注册中心配置
dubbo:monitor-------->监控中心配置
dubbo:provider------->提供方配置
dubbo:consumer------>消费方配置
dubbo:method-------->方法配置
dubbo:argument------>参数配置

配置关系图:

  

 

 


11.在provider上可以配置consumer端的属性有哪些?
1.timeout:方法调用超时
2.retries:失败重试次数认重试两次
3.loadbalance:负载均衡算法,随机
4.actives消费者端,最大并发调用限制
12.dubbo启动时如果依赖的服务不可用会怎么样?
dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,认check="true",可以通过check="false"关闭检查
13.dubbo推荐使用什么序列化框架,你知道的还有哪些?
推荐使用Hessian序列化,还有dubbo、FastJson、Java自带系列化
14.dubbo有哪几种集群容错方案,认时哪种?
Failover Cluster------->失败自动切换,自动重启其他服务器(认)
FailFast Cluster------->快速失败,立即报错,只发起一次调用
FailSafe Cluster------->失败安全,出现异常时,直接忽略
Failback Cluster------->失败自动恢复,记录失败请求,定时重发
Forking Cluster-------->并行调用多个服务器,只要一个成功即返回
broadcast Cluster------>广播逐个调用所有提供者,任意一个报错则报错
15dubbo有哪几种负载均衡策略,认时哪种?
Random LoadBalance------>随机,按权重设置随机概率(认)
RoundRobin LoadBalance---->轮训,按公约后的权重设置轮训比例
LeastActive LoadBalance------>最少活跃调用数,相同活跃数的随机
ConsistentHash LoadBalance----->一致性hash,相同参数的请求总是发到统一提供者
16注册了多个同样的服务,如果测试指定的某一个服务呢?
可以配置环境点对点直连,绕过注册中心,将以服务接口为单位,忽略注册中心的提供者列表
17.当一个服务接口有多中实现时怎么做?
一个接口有多种实现时,可以用Group属性来分组,服务提供方和消费方指定同一个Group即可
18.dubbo可以对结果进行缓存吗?
可以,dubbo提供了声明式缓存,用于加速热门数据的访问速度,以减少用户加缓存的工作量
19.dubbo服务之间的调用认时同步等待结果阻塞的支持异步调用

 

 


20dubbo如何优雅停机?
dubbo是通过JDK的ShutdownHook来完成优雅停机的,所以如果使用kill-9 PID等强制关闭指令,是不会执行优雅停机的,只有通过kill PID,才会执行
21.服务提供者能实现失效踢出是基于Zookeeper的临时节点原理
22.dubbo的管理控制台能做什么?
管理控制台只要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡等管理功能
23.谈谈dubbo服务暴露过程?
Bubbo会在Spring实例化完bean之后,在刷新容器最后一步发布ContextRefreshEvent事件的时候,通知实现了ApplicationListener的ServiceBean父类
ServiceConfig的export方法,而该方法真正实现了服务的发布

 

24:dubbo支持分布式事物吗?

 

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...