Zookeeper、Dubbo面试题总结

【zookeeper面试】

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Zookeeper、Dubbo面试题总结_第1张图片

1、zookeeper是一个开源的分布式协调服务框架。

2、应用场景:分布式通知/协调、负载均衡、配置中心、分布式锁、分布式队列等。

3、使用ZAB协议。

4、Paxos算法。

5、选举算法及流程。

6、节点类型:持久节点、持久顺序节点、临时节点、临时顺序节点。

7、不是永久的,一次性的,需要借助第三方工具实现重复注册。

8、部署模式:单机模式、伪集群模式、集群模式。

9、集群角色:leader、foller、observer。

10、集群规则为2N+1台,N>0,即3台。

11、集群需要一半以上的机器可用,所以,3台挂掉1台还能工作,2台不能。

12、3.5版本开始支持动态扩容。

13、java客户端:zk自带的zkclient及Apache开源的Curator。

14、chubby是google的,完全实现paxos算法,不开源。zookeeper是chubby的开源实现,使用zab协议,paxos算法的变种。

15、常用命令:ls get set create delete等。

 

【Dubbo面试题】

Spring Eureka 从开源转变为闭源,Consul 正在崛起,而Dubbo又开始重新更新。目前市场上仍有不少公司使用dubbo我们也需要继续学习。

Zookeeper、Dubbo面试题总结_第2张图片

1、默认使用的是什么通信框架,还有别的选择吗?  
  
2、服务调用是阻塞的吗?  
  
3、一般使用什么注册中心?还有别的选择吗?  
  
4、默认使用什么序列化框架,你知道的还有哪些?  
  
5、服务提供者能实现失效踢出是什么原理?  
  
6、服务上线怎么不影响旧版本?  
  
7、如何解决服务调用链过长的问题?  
  
8、说说核心的配置有哪些?  
  
9、dubbo推荐用什么协议?  
  
10、同一个服务多个注册的情况下可以直连某一个服务吗?  
  
11、画一画服务注册与发现的流程图  
  
12、集群容错怎么做?  
  
13、在使用过程中都遇到了些什么问题?  
  
14、dubbo和dubbox之间的区别?  
  
15、你还了解别的分布式框架吗?

----------------------------------------------------------------------------------------------------------------------

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

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协议。

10、可以直连,修改配置即可,也可以通过telnet直接某个服务。

11、读操作建议使用Failover失败自动切换,默认重试两次其他服务器。写操作建议使用Failfast快速失败,发一次调用失败就立即报错。

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

16、别的还有spring的spring cloud,facebook的thrift,twitter的finagle等。

你可能感兴趣的:(架构)