1. 简单描述一下Zookeeper
答:Zookeeper是一种为分布式应用所设计的高可用性、高性能且一致的开源协调服务,它提供一项基本服务:分布式锁服务。由于Zookeeper的开元特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。
ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。ZooKeeper在一致性、可用性、容错性的保证,也是ZooKeeper的成功之处,它获得的一切成功都与它采用的协议——Zab协议是密不可分的。首先它设计一种新的数据结构——Znode,然后在该数据结构的基础上定义了一些关于该数据结构的一些操作。有了这些数据结构和原语还不够,因为我们的ZooKeeper是工作在一个分布式的环境下,我们的服务是通过消息以网络的形式发送给我们的分布式应用程序,所以还需要一个通知机制——Watcher机制。那么总结一下,ZooKeeper所提供的服务主要是通过:数据结构+原语+watcher机制,三个部分来实现的。
ZooKeeper的数据模型,在结构上和标准文件系统的非常相似,都是采用树形层次结构,ZooKeeper树中的每个节点被称为—Znode。每个Znode由3部分组成:
2020Java开发岗位面试题汇总
最新推荐文章于 2024-07-04 17:33:24 发布
本文详细介绍了Java开发岗位面试中常见的问题,涵盖Zookeeper、Hashtable与HashMap的区别、ArrayList与LinkedList、Vector的对比、线程安全与线程对立的概念、MySQL存储引擎的特性、索引的理解以及Java集合框架中的泛型优势等。此外,还讨论了线程池、单例模式、并发集合以及HashMap的工作原理。这些问题涉及了Java的多线程、集合、数据库、并发等多个核心概念,对于Java开发者来说至关重要。
摘要由CSDN通过智能技术生成