Zoo Keeper是一种集中服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实现它们时,都有大量工作要做,以修复不可避免的bug和竞争条件。由于实现这类服务的困难,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱,难以管理。即使操作正确,在部署应用程序时,这些服务的不同实现也会导致管理复杂性。
Zoo Keeper旨在将这些不同服务的精髓提炼成一个非常简单的接口,以提供集中协调服务。服务本身是分布式的,高度可靠。共识、组管理和状态协议将由服务实现,这样应用程序就不需要自己实现它们。这些应用的特定用途将包括Zoo Keeper的特定组件和特定应用惯例的混合。ZooKeeper Recipes展示了如何使用这个简单的服务来构建更强大的抽象。
以上来自apache.org官方(自翻译)
zookeeper可以做什么?
ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。Zookeeper作为Hadoop和Hbase的重要组件,可以为分布式应用程序协调服务,同时还能使用Java和C的接口。
什么是分布式?
分布式是相对集中式而言的,早期计算机的普及促使IT系统快速发展进入集中式处理阶段,其中对应的就是集中式系统。而后,计算机系统向网络化和微型化的方向发展,业务量的增加、访问客户的增多,对计算机系统的发展起到了推进作用,改用更加方便、体积更加小的分布式计算机系统,而后进入电商时代,以阿里为代表的的“去IOE”计划更是标志着分布式系统时代的到来(大数据时代数据量惊人,传统的集中式处理方式无法应对数据大量读写和用户高访问需求,诸如光棍节、双十二这些电商节日的访问,一次服务瘫痪带的损失惊人)。【其实很简单的解释:IBM小型机、Oracle数据库和EMC存储设备。首字母简写,即为IOE。】
分布式系统中的计算机在空间部署上可以使随意分布的,这些计算机可以实际存储在不同的地域和机房中,分布式系统中的计算机没有主从之分,组成分布式系统的所有计算机节点都是对等的。
分布式计算机系统带来的缺点:分布空间随意 ,造成时间不同步NTP、数据不同步的问题、业务系统更新不同步、通信延迟问题、节点故障如何处理的问题。反之,这些缺点也正是分布式另一个角度的优点,它相对于集中式而言,具有鲜明的特点:数据损坏只能损坏其中一部分,其他的还能保留下来,对主机对外提供服务能够更好的支持用户并发访问、网络环境不同,不同的事务操作,不会互相干扰、