一、Dubbo运行原理

image.png
1.启动Dubbo容器Container
2.服务提供者Provider先去注册中心nacos注册 服务名,端口,ip,group,version,接口全路径等信息
3.服务消费者去注册中心nacos订阅所需的服务(已经在nacos中注册的服务)
4.当服务提供者Provider发生变化时,注册中心nacos异步通知服务消费者Consumer
5.服务消费者Consumer通过动态代理发起远程同步调用服务提供者Provider
6.服务消费者Consumer和服务提供者Provider每隔一分钟会向监控中心Monitor发起访问次数和频率等统计信息

二、Dubbo配置所有重要配置

1.配置原则 -D>xml>properties(参数优先级)
2.重试次数 2次(默认)
3.超时时间 1s(默认)
4.灰度发布
5.上下文信息
6.隐式参数

三、Dubbo负载均衡有几种,默认是什么

4种,
Random LoadBalance权重随机(默认)
RoundRobin LoadBalance权重轮循
LeastActive LoadBalance最少活跃数
ConsistentHash LoadBalance一致性哈希

四、Dubbo服务熔断降级有如何实现,有几种

6种,
Failover Cluster失败自动切换(默认)
Failfast Cluster快速失败
Failsafe Cluster失败安全
Failback Cluster失败自动恢复
Forking Cluster并行调用
Broadcast Cluster广播调用

五、SpringCloud 和 Dubbo 区别(面试题)

1.SpringCloud是spring公司开源的微服务架构,它主要定位为微服务架构下的一站式解决方案
Dubbo是阿里巴巴公司开源的RPC框架,它主要定位为服务治理

2.SpringCloud的服务调用是基于http协议,Dubbo是基于RPC协议

RPC协议基本原理
image.png

3.Dubbo只实现了服务治理,相当于SpringCloud中的feign,而SpringCloud还有服务网关、服务跟踪等等组件

4.SpringCloud和Dubbo都支持多种注册中心,不过目前主流来看SpringCloud用Eureka较多,Dubbo
则以Zookeeper为主,两者存在较大的差异:
4.1: 从集群设计来看:Eureka集群各节点平等,没有主从关系,因此可能出现数据不一致情况;ZK为了满足一致性,必须包含主从关系,一主多从。集群无主时,不对外提供服务
4.2: CAP原则来看:Eureka满足AP原则,为了保证整个服务可用性,牺牲了集群数据的一致性;而Zookeeper满足CP原则,为了保证各节点数据一致性,牺牲了整个服务的可用性。
4.3: 服务拉取方式来看:Eureka采用的是服务主动拉取策略,消费者按照固定频率(默认30秒)去Eureka拉取服务并缓存在本地;ZK中的消费者首次启动到ZK订阅自己需要的服务信息,并缓存在本地。然后监听服务列表变化,以后服务变更ZK会推送给消费者。
[

](https://blog.csdn.net/weixin_51291483/article/details/109212137)