目录
  1. 1. zookeeper安装与应用
    1. 1.1. zookeeper介绍
    2. 1.2. zookeeper功能
    3. 1.3. zookeeper安装
    4. 1.4. zookeeper配置
    5. 1.5. 文献参考
zookeeper安装与应用

zookeeper安装与应用

zookeeper介绍

Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination.

  • zookeeper是Apache下属的一个顶级开源项目官网,是一个分布式下高可用的开源服务。

zookeeper功能

ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

  • 在apache项目中,许多项目是以动物命名。zookeeper,动物管理员,顾名思义,管理动物园中的各种动物(各种开源项目)。按其官网所描述,zookeeper是一个集中式服务,功能包括集中管理配置信息,名字服务,分布式锁以及集群管理。zookeeper主要用于分布式项目中,作为服务注册中心。
  1. 集中管理配置信息

    如果在单机环境下,配置量较小,我们可以直接使用配置文件。但是在分布式环境下,多台服务器共同运行,有的服务器需要相同的配置,还需要动态更改,如果还是使用配置文件,我们修改配置文件就需要一台台的修改,有时还会修改错,这样即耗时又耗力。

    还有一种选择,将配置信息保存到数据库(创建配置表),所有需要配置的服务都去数据库读取配置。但是使用这种方式在分布式环境下并不是最优选择,因为分布式下所有服务都依赖这个数据库,数据库并不可靠(分布式下的并发问题)。

    在分布式下,zookeeper是一个比较好的选择,采用集中式配置服务来管理配置信息。zookeeper具有可复制性,一般使用集群来提供配置服务,使其具有高可靠性,并且还要使用一致性协议服务保持分布式下的一致性。

  2. 名字服务

    zookeeper提供名字服务,它有点像linux标准文件系统,以"/"为根目录,其下的为子目录项,这些目录项被称为znode(目录节点),它比文件系统的目录多一个功能,可以存储数据。

zknamespace

有四种znode

中文名称 英文名称 功能
持久化目录节点 PERSISTENT 断开连接后节点仍然存在
持久化顺序编号目录节点 PERSISTENT_SEQUENTIAL 断开连接后节点仍然存在但重新顺序编号
临时目录节点 EPHEMERAL 节点由客户端创建,断开连接后节点删除
临时顺序编号目录节点 EPHEMERAL_SEQUENTIAL 断开连接后节点删除但重新顺序编号
  1. 分布式锁

    zookeeper是一个分布式协调服务,可以通过分布式锁协调多个分布式服务。比如,一个集群中,同一服务被复制到多台服务器上提高可靠性。但是做一件事只能一个服务进行,这就需要分布式锁,同一时刻只能一个服务工作,直到出错释放。这种设计被称为leader选举(leader election)。

zookeeper集群

  1. 集群管理

    在多台服务器组成的集群中,需要监控每台服务器状态,集群可以主动感知节点的死亡和节点的加入。在集群中,每个服务器需要在zk服务器创建临时节点,当服务器挂掉,临时节点会被删除,并触发监视器,通知其他服务器。

zookeeper安装

zookeeper配置

文献参考

  1. Zookeeper到底是干嘛的
  2. zookeeper官网
  3. Zookeeper入门看这篇就够了
  4. 学习笔记和总结
文章作者: rack-leen
文章链接: http://yoursite.com/2019/11/26/%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85%E4%B8%8E%E9%83%A8%E7%BD%B2/zookeeper%E5%AE%89%E8%A3%85%E4%B8%8E%E5%BA%94%E7%94%A8/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论