1、Dubbo是什么?

阿里巴巴开源的基于java高性能的RPC远程服务框架。

2:Dubbo 和 Spring Cloud 有什么区别?

个人认为是系统架构演变不同时期的产物,并没有什么实际性的关联,
必须说的话就是**内部构成组件不同以及通信方式**不同,dubbo使用rpc远程调用,spring cloud使用restful方式。

3:Dubbo里面有哪几种节点角色?

●Provider: 暴露服务的服务提供方
●Contahier: 服务运行容器
●Consumer: 调用远程服务的服务消费方
●Registry: 服务注册与发现的注册中心
●Monitor:统计服务的调用次数和调用时间的监控中心

4:dubbo服务注册以及发现的流程?

image.png

5:Dubbo有哪几种配置方式?

(1)spring方式配置
(2)javaApi配置

6:dubbo序列化?

内部已经将序列化和反序列化进行了封装,在我们的实体类上实现serializzable接口就可以。

7:dubbo注册中心挂了,服务器是否可以访问?

可以,dubbo中服务消费方第一次使用时已经将服务提供放的ip和端口缓存在本地,并且每次提供方的状态改变的时候注册中心就通知服务消费方。

8:超时用来解决什么问题?

在某个峰值时刻,大量的请求都在同时请求服务消费者,会造成线程的大量堆积,势必会造成雪崩。
dubbo利用超时机制来解决这个问题,设置-个超时时间, 在这个时间段内,无法完成服务访问,则自动断开连接。
使用timeout属性配置超时时间,默认值1000,单位毫秒

9:重试用来解决什么问题?

  1. 如果出现网络抖动,则这一-次请求就会失败。
  2. Dubbo提供重试机制来避免类似问题的发生。
  3. 通过retries属性来设置重试次数。默认为2次。

    10:灰度发布?

    当出现新的功能时候,先让一部分用户使用,这些用户体验没有问题时候,再将所有用户迁移到新功能。

    11:dubbo负载均衡策略?

    Random:按权重随机,默认值。按权重设置随机概率。
    RoundRobin: 按权重轮询。
    LeastActive: 最少活跃调用数,相同活跃数的随机。
    ConsistentHash:一 致性Hash,相同参数的请求总是发到同一提供者。

    12:集群容错模式(有时间看看):

    Failover Cluster:失败重试。默认值。当出现失败,重试其它服务器,默认重试2次,使用retries配置。一般用于读操作
    Failfast Cluster :快速失败,发起-次调用,失败立即报错。通常用于写操作。
    Failsafe Cluster:失败安全,出现异常时,直接忽略。返回一个空结果。
    Failback Cluster:失败自动恢复,后台记录失败请求,定时重发。
    Forking Cluster :并行调用多个服务器,只要一个成功即返回。
    Broadcast Cluster: 广播调用所有提供者,逐个调用,任意一台报错则报错。

    13:什么时服务降级?

    当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作

    14:服务降级的方式?

    @reference
    mock= force:return null:表示消费方对该服务的方法调用都直接返回null值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
    mock=fail:return null:表示消费方对该服务的方法调用在失败后,再返回null值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响