\

dubbo健壮性

(1)监控中心宕掉不影响使用,只是丢失部分采样数据

(2)数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

(3)注册中心对等集群,任意一台宕掉后,将自动切换到另一台

(4)注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯

(5)服务提供者无状态,任意一台宕掉后,不影响使用

(6)服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复

dubbo伸缩性

(1)注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心

(2)服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

 

       1、默认使用的是什么通信框架,还有别的选择吗?  

      默认也推荐使用netty框架,还有mina。

  Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。

      2、服务调用是阻塞的吗?  

      默认是阻塞的,可以异步调用,没有返回值的可以这么做。

      3、一般使用什么注册中心?还有别的选择吗?  

      推荐使用zookeeper注册中心,还有redis等不推荐。

      4、默认使用什么序列化框架,你知道的还有哪些?  

      默认使用Hessian序列化,还有Duddo、FastJson、Java自带序列化

      5、服务提供者能实现失效踢出是什么原理?  

      服务失效踢出基于zookeeper的临时节点原理

      6、服务上线怎么不影响旧版本?  

      采用多版本开发,不影响旧版本。

      7、如何解决服务调用链过长的问题?  

      可以结合zipkin实现分布式服务追踪。

      8、说说核心的配置有哪些?  

      核心配置有

      dubbo:service/

      dubbo:reference/

      dubbo:protocol/

      dubbo:registry/

      dubbo:application/

      dubbo:provider/

      dubbo:consumer/

      dubbo:method/

        
      9、dubbo推荐用什么协议?  

      默认使用dubbo协议。还有 rmi,http,hessian,webservice

      10、同一个服务多个注册的情况下可以直连某一个服务吗?  
            可以直连,修改配置即可,也可以通过telnet直接某个服务。
      11、画一画服务注册与发现的流程图  
        
      12、集群容错怎么做?  
        

1.Faukiver Cluster(默认缺省):

  • 失败就自动切换,重试其他服务器.
  • 用于读操作,可重试会带来延迟
  • 通过retries=“2”来设置重试次数(不含第一次)

2.Failfast Cluster

  • 快速失败,只发起一次调用,失败立刻报错。——报错最好捕获,方便自身后续分析
  • 用于非幂等性的写操作,比如新增记录

3.Failsafe Cluster

  • 失败自动回复,后台记录失败请求,定时重发。——避免陷入服务器宕机,不断失败,不断定时重发
  • 通常用作消息通知操作

4.Forking Cluster

  • 并行调用多个服务器,成功一个即返回
  • 用于实时性高的读操作,但需要浪费更多服务资源。—— 典型的 性能和硬件 之争,协调好二者,本人还是比较推荐这个模式的。
  • 可通过forks=“2”设置最大的并行数

5.Broadcast Cluster

  • 广播所有提供者,逐一调用,任意一台报错则报错
  • 用于通知各个提供者更新缓存或日志等本地资

      13、在使用过程中都遇到了些什么问题?  
        

      14、dubbo和dubbox之间的区别?  

      dubbox是当当网基于dubbo上做了一些扩展,如加了服务可restful调用,更新了开源组件等。

      15、你还了解别的分布式框架吗?

      spring cloud