【zookeeper面试】
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
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我们也需要继续学习。
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等。
由于文章篇幅原因只写了一部分,本人这边专门整理了一套对应的Java面经pdf文档复习资料,含全面的zookeeper面试题,还有其他各类知识点的整理,特别适合一些即将面试或准备跳槽的Java开发者查缺补漏,需要获取这套文档资料的读者朋友们可以关注小编,后台私信关键字“面试资料”获取这套Java面经pdf文档资料。
觉得此文不错的大佬们可以帮忙转发分享一下,希望能帮助到更多正在为面试做准备的码友们,感谢!!!!